概念描述
UINavigationController:是一个UIViewController,导航栏控制器,其通过栈来直接控制了其下的viewController。可通过此设置全局导航栏属性。如导航栏背景或title颜色等。子视图会继承这些属性
UINavigationBar:是一个UIView,NavigaitonBar就是导航栏,位于屏幕的上方,管理整个NavigationController的navigationItem,它类似navigationcontroller一样提供了一个栈来管理UINavigationItem,在编程时,一般只设置每个控制器的navigationItem属性
一个导航控制器管理多个视图控制器(多个视图控制器共享一个导航控制器),而一个导航控制器只有一个UINavigationBar,被管理的多个视图控制器共享这一个UINavigationBar,只要一个视图控制器改变了UINavigationBar的属性则影响是全局的。每个视图控制器都会有属于自己的UINavigationItem,系统会以懒加载的方式创建一个UINavigationItem显示在UINavigationBar中,改变UINavigationItem只会在当前控制器起作用,不会影响其它控制器。
UINavigationItem:是一个NSObject,一般使用在self.navigationItem, 包含了当前页面导航栏上需要显示的信息(title,prompt,titleView,leftBarButtonItem,rightBarButtonItem,backBarButonItem )。其中UIBarButtonItem是一个UIBarItem,是一种专门放在UINavigationBar上的特殊button。
self.navigationController.navigationBar.navigationItem....
self.navigationItem.leftBarButtonItem.....
Code
实现效果如下
Snip20170921_2.png
网友评论