【iOS开发-UITabBarController】UITabBarController上面的UINavigationController的设置

本文详细介绍了如何自定义iOS导航栏,包括创建自定义NavigationController类、设置导航栏主题、背景和标题,以及在iOS 6和iOS 7不同版本下的出图规格和隐藏UITabBar的方法。

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

自定义导航栏

为了保证项目的导航栏效果一直,一般都会设置导航栏的样式一样

①自定义一个NavigationController类,继承与UINavigationController类
②更改所有的UITabBarController下面的UINavigationController的class属性为自定义类形式
③主要是取得导航栏的appearance对象,操作它就设置导航栏的主题

UINavigationBar *navBar = [UINavigationBar appearance];

④导航栏背景

//设置导航栏背景的
- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics;

⑤设置标题

@property(nonatomic,copy) NSDictionary *titleTextAttributes;
// 字典中能用到的key在UIStringDrawing.h中
// 最新版本的key在UIKit框架的NSAttributedString.h中

自定义导航栏按钮

UIBarButtonItem *item = [UIBarButtonItem appearance];

iOS6导航栏背景的出图规格
非retina:320x44 px
retina:640x88 px

iOS7导航栏背景的出图规格
retina:640x128 px

自定义NavigationController

自定义导航控制器的步骤:新建一个类,继承自UINavigationController

自定义导航控制器的价值
重写push方法就可以拦截所有压入栈中的子控制器,统一做一些处理

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

重写pop方法就可以拦截所有子控制器的出栈

- (UIViewController *)popViewControllerAnimated:(BOOL)animated;

为了在push控制器时隐藏UITabBar,需要做以下设置

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    viewController.hidesBottomBarWhenPushed = YES;
    [super pushViewController:viewController animated:animated];
}

initailize、load方法的区别
initailize、load都是类方法
当一个类被装载进内存时,就会调用一次load方法(当时这个类还不可用)
当第一次使用这个类时,就会调用一次initailize方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值