iOS 9的自定义导航控制器

本文介绍了一个自定义的iOS导航控制器实现方法,包括导航栏主题设置、BarButtonItem样式调整及重写pushViewController方法来隐藏底部标签栏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//
//  NavigationController.m
//

#import "NavigationController.h"

@interface NavigationController ()

@end

@implementation NavigationController



/**
 *  第一次使用的这个类的时候会调用(一个类只会调用一次)
 */
+ (void)initialize
{
    //1.设置导航栏主题
    [self setupNavBarTheme];
    
    //2.设置BarButtonItem的主题
    [self setupBarButtonItemTheme];
}

/**
 *  设置导航栏主题

 */
+ (void)setupNavBarTheme
{
    UINavigationBar *navBar = [UINavigationBar appearance];
    //背景图片
    [navBar setBackgroundImage:[UIImage imageNamed:@"NavBar"] forBarMetrics:UIBarMetricsDefault];
    //状态栏为白色样式
    navBar.barStyle = UIBarStyleBlack;
    //返回箭头颜色
    navBar.tintColor = [UIColor whiteColor];
    
    //设置标题文字属性
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSForegroundColorAttributeName] = [UIColor whiteColor];
    //attrs[NSFontAttributeName] = [UIFont systemFontOfSize:16];
    [navBar setTitleTextAttributes:attrs];
}
/**
 *  设置BarButtonItem的主题
 */
+ (void)setupBarButtonItemTheme
{
    UIBarButtonItem *item = [UIBarButtonItem appearance];
    
    //设置文字
    NSMutableDictionary *itemAttrs = [NSMutableDictionary dictionary];
    itemAttrs[NSForegroundColorAttributeName] = [UIColor whiteColor];
    [item setTitleTextAttributes:itemAttrs forState:UIControlStateNormal];
}

/**
 *  重写Push方法(隐藏底部的tabbar)
 */
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if (self.viewControllers.count) { //避免一开始就隐藏了
        viewController.hidesBottomBarWhenPushed = YES;
    }

    [super pushViewController:viewController animated:animated];
}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值