一、导航控制器:管理控制器的控制器,主要管理右层级关系的控制器。继承自UIViewController, 以栈的⽅式管理所 控制的视图控制器,⾄少要有⼀个被管理的视图控制器,这个控制器我们称作导航控制器的根视图控制器。

 // NavigationController 虽然是管理控制器的,但本身不可见,故其View也管理对应的控制器的view

    // NavigationControllerview整体上可以分为三个部分:

     1, NavigationBar 导航条,默认是透明的,在竖屏下的高度是44

     2 toolBar 工具条,默认是隐藏的

     3contentView:真正存放视图控制器viewview。其在导航条透明的情况下是和整个屏幕等大的。如果不透明,toolBar会隐藏,那么contentView从导航条下面开始放置。

     4,导航控制器不能推出导航控制器  

     5,导航控制器在管理视图的时候采用栈的数据结构进行管理,对应的数据容器是NSArray。视图控制器入栈采用的是push,出栈采用的是pop

     6, navigationController自带一个导航条,在使用时,每个被控制的视图控制器都可以定制属于自己的导航条。当切换的时候会销毁上一个控制的内容,以展示当前的导航条内容

 

二、navigationController属性,⽗类中的属性,每个在栈中的控制器,都能通 过此属性,获取⾃⼰所在的UINavigationController对象。

三、入栈和出栈

 pushViewController:animated //进⼊下⼀个视图控制器

 popViewControllerAnimated: //返回上⼀个视图控制器

 popToViewController:animated //返回到指定的视图控制器

 popToRootViewControllerAnimated //返回到根视图控制器

四、常用的属性

 viewControllers //所有处于栈中的控制器

 topViewController //位于栈顶的控制器

 visibleViewController //当前正在显⽰的控制器

  navigationBar //导航条

 

五、定制UINavigationBar

  1, barTintColor //设置导航条的颜⾊

  2, setBackgroundImage:forBarMetrics: //导航条加背景图⽚

  3, UINavigationBar除了能定义⾃⾝的样式外,还管理⼀组 UINavigationItem。

     1)、 与UINavigationController相似 ,UINavigationBar也是以栈的⽅式管 理⼀组UINavigationItem。提供push和pop操作item。 每个视图控制器都有⼀个navigationItem  属性。navigationItem中设 置的左按钮、右按钮、标题等,会随着控制器的显⽰,也显⽰到 navigationBar上。

    2)、UINavigationItem的一些属性

        title //标题

      self.title self.navigationItem.title 的区别是:如果项目中既用到了navigationController,又用到了tabBarController。用self.title会同事设置两个标题,  用self.navigationItem.title只会设置navigation的标题

       

         titleView //标题视图

         leftBarButtonItem //左按钮

 

         rightBarButtonItem //右按钮

     UIBarButtonItem属定义了UINavigationItem上按钮的触发事件,外观等

      -initWithBarButtonSystemItem:target:action:

      -initWithTitle:style:target:action:

      -initWithImage:style:target:action: tintColor

 

posted on 2015-08-29 20:03  竹间Code  阅读(137)  评论(0编辑  收藏  举报