之前虽然也手写过这两中视图控制器,但是更多的还是使用SB来创建,最近发现了一些问题,现在总结一下。
1.改变UINavigationBar的颜色
在UINavigationController中,之前只需要设置UINavigationController.navigationBar.tintColor 就可以改变navigationBar的颜色了,在最新的API中苹果对这个属性就行了修改了。
添加了一个属性barTintColor,以前的tintColor不再对bar的颜色产生影响,改变颜色需要用barTintColor.
2.设置UINavigationBar的title和UITabBarController下面item的文字为不同的标题
当一个视图控制器是UINavigationController的当前控制器时,如果设置了self.title属性,那么当前视图的navigationBar的title就是会自动取self.title的值。如果当前视图控制器还在tabBarController中,那么下面item的title也会取self.title,如果想要bar上面的文字和item的文字不一样,那么需要单独的对bar上面的文字设定,即除了设置self.title 意外还要在设置self.navigationItem.title的值,来吧bar上面的标题改回来,还可以单独设置item上的文字,self.navigationController.tabbarItem.title对该属性修改即可。
3.自定义UINavigationBar中间视图
UINavigationBar中有个titleView属性,可以定制视图来放置在中间位置,比如可以把等待指示器放在这里。
4.改变UINavigationBar title的文字样式
UINavigationBar中有个属性为titleTextAttributes,比如要把文字设置为18号红色,那么可以用NSFontAttributeName 和 NSForegroundColorAttributeName来分别设置文字样式和颜色。