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
  • 相关阅读:
    单片机数字滤波的算法!
    Python中列表的兄弟
    史上最全的Python程序员面试必备常用问题
    新人在学习web前端的容易踩哪些坑?
    linux+arm系统学习与基础学习
    C和C++笔记:动态内存管理
    Python 爬虫干货之urllib库
    单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系!
    单片机死机了怎么办?
    单片机各种复位电路原理
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6502865.html
Copyright © 2011-2022 走看看