本文仅提供大家参考与交流,可能会有一些错误,欢迎大家指正。Xcode版本6.3.2。
大部分APP都应用了导航控制器(UINavigationController)与标签控制器(UITableBarController),导航栏(UINavigationBar)的设定是非常重要的,系统的导航栏有很大的局限性,因此很多情况下都会使用自定义导航栏,或者修改系统导航栏。关于导航控制器以及导航的概念,再简单提一下,一个导航控制器只有一个导航栏。导航控制器可以有很多子视图控制器,子视图控制器上的导航栏的Item和标题可以不同,是因为每个子视图控制器都有一个导航项(UINavigationItem)。在任何子视图控制器上修改导航栏自身属性,会改变整个导航控制器的中的导航栏。在上一篇博文中有提到, 介绍导航控制器的概念
本文主要讲解的是基于系统导航栏的自定义使用方法,就是在不隐藏系统导航栏的情况下,修改导航栏的各个属性。
1.设置背景
创建导航控制器
ViewController *viewCtrl = [[ViewController alloc] init];//预先创建导航控制器的根视图
UINavigationController *navigationCtrl = [[UINavigationController alloc] initWithRootViewController:viewCtrl];//创建导航控制器
self.window.rootViewController = navigationCtrl;
可以给导航控制器的根视图设置一个标题。
系统导航栏默认是这种颜色(跟白色有区别)的,而且带透明效果,导航栏的字体是黑色的,没有任何按钮。
在导航控制器的子视图中设置
self.navigationController.navigationBar.translucent = NO;//设置导航栏透明度 NO表示不透明
self.navigationController.navigationBar.tintColor = [UIColor greenColor];//改变系统按钮的线条颜色
self.navigationController.navigationBar