码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-04-26 22:53:17      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:ios   开发   导航栏   

自定义导航栏

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

①自定义一个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方法

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

标签:ios   开发   导航栏   

原文地址:http://blog.csdn.net/ttf1993/article/details/45292945

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!