首页 > 移动平台 > 详细

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

时间:2015-04-26 22:51:57      阅读:1344      评论:0      收藏:0      [点我收藏+]

自定义导航栏

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

①自定义一个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的设置

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!