几个有联系且比较相似的东西,容易搞混乱,这次彻底搞明白,并记录下来
1:首先UINavigationController 是导航控制器 控制添加到其中的视图控制器UIViewController
2: navigationBar是UINavigationController的一个属性,就是显示在界面上方的导航条bar
可以在UINavigationController中 用self.navigationBar调用
self.navigationBar.backgroundColor = [UIColoryellowColor];
也可以在UIViewController中 用self.navigationController.navigationBar调用
self.navigationController.navigationBar.backgroundColor = [UIColoryellowColor];
不管在哪里调用,调起的都是同一个navigationBar,也就是说在UINavigationController中 设置navigationBar的属性,会同步发生作用到所有UIViewController界面。
例如:MyNavigationController导航控制器中加入 viewControllerA和 viewControllerB. 如果在MyNavigationController设置navigationBar的背景为红色,则viewControllerA和 viewControllerB的导航条的背景都为红色,在viewControllerA设置navigationBar的背景为蓝色,push到viewControllerB中,导航条也为蓝色
3: navigationItem是UIViewController的一个属性,目的是设置在本界面navigationBar的显示内容 navigationItem和navigationController是同级别的属性
navigationItem也有自己的属性
title :标题名称
titleView:标题视图(用来自定义)
leftBarButton: 左边按钮(也可以设置多个,自行百度)
rightBarButton:右边按钮
4:navigationItem与UINavigationBar,就是mvc模式,UINavigationBar就是View,只有一份,显示在每个viewController界面,而每个viewController都有一个navigationItem属性,用来设置本界面navigationBar要显示的内容