导航控制器的管理原则

Posted ch520

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了导航控制器的管理原则相关的知识,希望对你有一定的参考价值。

1、程序一进入时,就要让窗口的根控制器是一个导航控制器.

  • 1.新建窗口
  • 2.创建导航控制器.并设置导航控制器的根控制器
  • 3.把导航控制器设为窗口的根控制器.
  • 4.显示窗口.

2、说明:

  • 2.1 设置导航控制器的根控制器

    • 1)当设置导航控制器的根控制器时,也就是initWithRootViewController,
    • 2)它底层其实是调用了导航控制器的push方法.把该控制器添加为导航控制器的子控制器.
    • 3)并且它会把该控制器的View添加到导航控制器专门存放子控制器的View上面.
  • 2.2 导航控制器设为窗口的根控制器

    • 1)把导航控制器设为窗口的根控制器时,它就会把导航控制器的View添加到窗口的View上面.
    • 2)所以程序一运行时, 我们看到的就是一个导航控制器的View.
    • 3)导航控制器的View内部默认有两个子view.一个是导航条, 一个是转专存放子控制器的View.
    • 4)现在专门存放子控制器的View里面存放的就是导航控制器根控制器的View.
    • 5)导航控制器的子控制器都是存放到一个栈中.也就是一个数组当中.

3、push方法

  • 1)当调用导航控制器的push方法时, 就会把一个控制器压入到导航控制器的栈中.
  • 2)压入栈中是, 那么刚压入栈中的这个导航控制器就在栈的最顶部.
  • 3)它就会把原来导航控制器View当中存放的子控制器View的内容移除,
  • 4)然后把导航控制器栈顶控制器的View添加到导航控制器专门存放子控制器View当中.
  • 注意:只是把控制器的View从导航控制器存放子控制器的View当中移除,并没有把控制器从栈中移除.所以上一个控制器还在.

4、pop方法

  • 当调用pop当方法时, 就会把导航控制器存放子控制器View当中控制器的View移除,并且会把该控制器从栈里面移除.
  • 此时该控制器就会被销毁.接着它就会把上一个控制器的View添加到导航控制器专门存放子控制器的View当中.

以上是关于导航控制器的管理原则的主要内容,如果未能解决你的问题,请参考以下文章

UI整理-----part8--导航控制器(navigationController)

如何在没有导航控制器的情况下管理 UITableViews 堆栈

导航控制器中导航堆栈使用的数据类型是啥

多控制器和导航控制器简单介绍

Buildfire - 是不是可以从管理控制面板导航到插件

如何快速将需求视图控制器推送到导航控制器