zoukankan      html  css  js  c++  java
  • 统一设置导航栏返回按钮

    XMGNavigationViewController.m

    #import "XMGNavigationViewController.h"
    
    @interface XMGNavigationViewController ()
    
    @end
    
    @implementation XMGNavigationViewController
    + (void)load
    {
        UINavigationBar *navBar = [UINavigationBar appearanceWhenContainedIn:self, nil];
        
        // 只要是通过模型设置,都是通过富文本设置
        // 设置导航条标题 => UINavigationBar
        NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
        attrs[NSFontAttributeName] = [UIFont boldSystemFontOfSize:20];
        [navBar setTitleTextAttributes:attrs];
        
        // 设置导航条背景图片
        [navBar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];
    }
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
    }
    
    - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
    {
        if (self.childViewControllers.count > 0) { // 非根控制器
            
            // 设置返回按钮,只有非根控制器
            viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem backItemWithimage:[UIImage imageNamed:@"navigationButtonReturn"] highImage:[UIImage imageNamed:@"navigationButtonReturnClick"]  target:self action:@selector(back) title:@"返回"];
        }
        
        // 真正在跳转
        [super pushViewController:viewController animated:animated];
        
    }
    - (void)back
    {
        [self popViewControllerAnimated:YES];
    }
    @end

    UIBarButtonItem+Item.m

    import "UIBarButtonItem+Item.h"
    
    @implementation UIBarButtonItem (Item)
    
    + (UIBarButtonItem *)backItemWithimage:(UIImage *)image highImage:(UIImage *)highImage target:(id)target action:(SEL)action title:(NSString *)title{
        UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [backButton setTitle:title forState:UIControlStateNormal];
        [backButton setImage:image forState:UIControlStateNormal];
        [backButton setImage:highImage forState:UIControlStateHighlighted];
        [backButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [backButton setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
        [backButton sizeToFit];
        backButton.contentEdgeInsets = UIEdgeInsetsMake(0, -20, 0, 0);
        [backButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
        
        return  [[UIBarButtonItem alloc] initWithCustomView:backButton];
    }
    
    @end
  • 相关阅读:
    MySQL的注释方式
    textarea属性
    htm,css,javascript及其他的注释方式
    修改背景颜色&字体&窗口标题及大小
    <xmp>标签及它与<pre>标签的区别
    替换文本是什么
    linux命令修改IP信息
    html大全
    MyEclipse>Error Log的查看方法
    WPF地区选择控件(内附下载地址)
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6502865.html
Copyright © 2011-2022 走看看