UI基础 - UINavigationController

如果导航控制器的BarButtonItem属性是一致的,可以重写initialize方法用来设置主题

//再ViewDidload执行前只执行一次
+(void)initialize
{
    //创建的UIBarButtonItem的属性会从这里获取
    UIBarButtonItem *appearance = [UIBarButtonItem appearance];
    //普通情况下
    NSMutableDictionary *nor = [NSMutableDictionary dictionary];
    nor[NSForegroundColorAttributeName] = [UIColor orangeColor];
    nor[NSFontAttributeName] = [UIFont systemFontOfSize:15];
    [appearance setTitleTextAttributes:nor forState:UIControlStateNormal];
    //高亮情况下
    NSMutableDictionary *high = [NSMutableDictionary dictionaryWithDictionary:nor];
    high[NSForegroundColorAttributeName] = [UIColor greenColor];
    [appearance setTitleTextAttributes:high forState:UIControlStateHighlighted];
    //不可以点击情况下
    NSMutableDictionary *disable = [NSMutableDictionary dictionaryWithDictionary:nor];
    disable[NSForegroundColorAttributeName] = [UIColor grayColor];
    [appearance setTitleTextAttributes:disable forState:UIControlStateDisabled];
    /**设置背景**/
    // 技巧: 为了让某个按钮的背景消失, 可以设置一张完全透明的背景图片
//    [appearance setBackgroundImage:[UIImage imageNamed:@"navigationbar_button_background"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
}

也可以一次性设置leftBarButtonItem和rightBarButtonItem

重写

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    /*这里传进来的是navController,
     self.viewControllers.count代表nav栈里控制器的数量,如果大于0,那就不是栈低控制器
     也就不是最开始看到的四个
     */
    if(self.viewControllers.count > 0 ){
        viewController.hidesBottomBarWhenPushed = YES;
        viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem initWithImage:@"navigationbar_back" HighImage:@"navigationbar_back_highlighted" action:@selector(back) target:self];
        viewController.navigationItem.rightBarButtonItem = [UIBarButtonItem initWithImage:@"navigationbar_more" HighImage:@"navigationbar_more_highlighted" action:@selector(more) target:self];
    }
    [super pushViewController:viewController animated:YES];
}

  

转载于:https://www.cnblogs.com/xj76149095/p/5350508.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值