iOS导航栏NavigationBar的颜色,按钮和标题以及字体颜色
首先,层级关系: leftBarButtonItem、rightBarButtonItem、title都是加在UINavigationItem上的,UINavigationItem再加在NavigationBar上,NavigationBar对应唯一的NavigationController.
1. 设置导航栏NavigationBar的背景颜色:
在appdelegate里创建UINavigationController后 设置
(1.) setBarTintColor : 设置NagivationBar的颜色 也可以用 :
[[UINavigationBarappearance] setBarTintColor:[UIColoryellowColor]];(在
UINavigationController执行pushViewController的界面里再次setBarTintColor后颜色还会变,说明设置的是同一个UINavigationBar,)
(2)在子集中用self.navigationController.navigationBar.barTintColor修改Navigationbar颜色
//*备注*//
[UINavigationBar appearance]的方法只能在Appdelegate里用,在UINavigationController的子页面中只能通过self.navigationController修改NagivationBar的属性.
(3.)setTintColor : 设置NagivationBar上按钮的颜色:
self.navigationController.navigationBar.tintColor = [UIColorblueColor];
2.设置NavigationBar上的title的颜色以及属性
(1.)
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
(2.)
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
还有一点,关于返回按钮的知识点:
在前一个界面设置下个界面的返回按钮:self.navigationItem.backBarButtonItem
使用pushViewController切换到下一个视图时,navigation controller按照以下3条顺序更改导航栏的左侧按钮:
1、如果B视图有一个自定义的左侧按钮(leftBarButtonItem),则会显示这个自定义按钮;
2、如果B没有自定义按钮,但是A视图的backBarButtonItem属性有自定义项,则显示这个自定义项;
3、如果前2条都没有,则默认显示一个后退按钮,后退按钮的标题是A视图的标题;