UINavigationBar 与UINavigationItem ,UINavigationController,UIViewController关系(1)

原创 2016年08月31日 11:25:37

几个有联系且比较相似的东西,容易搞混乱,这次彻底搞明白,并记录下来

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要显示的内容

版权声明:本文为博主原创文章,未经博主允许不得转载。

自定义UINavigationController导航栏背景

1。         [self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigation_bar_background"]...
  • daiyelang
  • daiyelang
  • 2014年11月10日 16:43
  • 11068

自定义UINavigationController 标题、左右边按钮 navigationbar 设置多个按钮

#import @interface ILNavigationController : UINavigationController @end
  • u011043997
  • u011043997
  • 2014年04月11日 17:08
  • 7006

UINavigationBar添加渐变的背景颜色

为UINavigationBar设置背景颜色是很常见的需求,一般设置导航栏背景颜色操作如下,直接设置barTintColor即可。     navigationController?.navigati...
  • longshihua
  • longshihua
  • 2017年11月17日 18:56
  • 191

iOS开发之高级视图—— UINavigationController(一)简单导航功能实现

UINavigationController是IOS编程中比较常用的一种容器view controller,很多系统的控件以及很多有名的APP中(如qq,系统相册等)都有用到。         nav...
  • panjican
  • panjican
  • 2016年05月26日 14:13
  • 1463

iOS开发之旅之UIViewController解析

就iOS开发来说,UIViewController就最核心的类型之一。而iOS的整个UI开发的核心思想也是MVC的架构,从UIViewController的命名就可以看出它在MVC中所扮演的角色...
  • bboyfeiyu
  • bboyfeiyu
  • 2014年12月01日 10:28
  • 7541

UIVIewController自定义切换效果

之前介绍动画时提过UIView的转场动画,但是开发中我们碰到更多的viewController的切换,ios中常见的viewcontroller切换有四种:模态视图,导航栏控制器,UITabBarCo...
  • bx1992
  • bx1992
  • 2016年02月23日 16:23
  • 777

UINavigationBar属性及返回按钮更改小结

有时候这些属性搞得蛮乱的,记录下以便查阅 UINavigationBar属性 如果想统一设置,可以通过以下方法,获取当前类下的所有对象的导航条,然后在+initialize方法中进行设置 ...
  • rabewu
  • rabewu
  • 2016年08月01日 14:49
  • 243

ViewController的自定义转场动画

http://www.xiaoyaoli.com/?p=1271 UIView的动画自由度一直很大,可以说想怎么动画怎么动画,但是UIViewController之间的动画一直都不好高度...
  • jeffasd
  • jeffasd
  • 2016年01月14日 20:55
  • 1173

UINavigationBar的视图层级关系

第一次比较真切地感受debug view hierarchy的作用。用它来探究一下UINavigationBar的视图层级关系。触发我去看这个的原因是我在学习《动态修改UINavigationBar的...
  • ohyeahhhh
  • ohyeahhhh
  • 2016年04月08日 11:01
  • 2248

自定义UINavgationBar的高度

UINavigationBar 官方给出的高度是44,一般开发过程中,我们都是使用默认的高度。但是有些需求,让我们不得不想办法去修改导航栏的高度,比如下面的场景 这个导航栏的高度...
  • SYH523364
  • SYH523364
  • 2017年02月28日 11:09
  • 485
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UINavigationBar 与UINavigationItem ,UINavigationController,UIViewController关系(1)
举报原因:
原因补充:

(最多只允许输入30个字)