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
  • 相关阅读:
    找工作刷题-------->Java相关
    ElasticSearch--------->批量索引------->推荐方法、注意事项、性能优化
    ElasticSearch--------------------->索引设计--------------------->数据库数据迁移至ES,如何根据tables特点设计ES的index/type/shards数目?
    Oracle------------->PL/SQL---------------->连接oracle数据库
    责任链模式
    程序员必备软件
    反射
    Linux 磁盘扩容
    1.4 java8 LocalDate
    观察者模式
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6502865.html
Copyright © 2011-2022 走看看