多控制器

在ios当中提供了两个比较特殊的控制器.是专门给我们用来管理控制器用的.
    1.UINavigationController.
    2.UITabBarController.
    
    1.UINavigationController.(导航控制器)
      系统的设置界面就是一个典型的导航控制器.只要看到上部有一个条, 就是一个导航控制器.
      在多控制器开发当中, 第一个界面都是一个控制器.导航控制器可以轻松的完成控制器之间的切换.
      
    2.导航控制器的View的结构.
      导航控制器它是一个控制器,它肯定有一个自己的View.
      导航控制器标志, 就是上面一个条.这个条, 我们叫它导航条.这个导航条它是显示到导航控制器View的上面.
      导航条的Y值是20的位置开始显示,上面20是状态栏的2位置.导航条的高度是44.
      导航控制器的View当中,还有一个转门存放子控制器的View.
      导航控制器的View上面有两层:最外面那一层是一个导航条,导航条下面是一个存放子控制器的View.
      
      导航条的Y值是20,高度是44,但是我们看到的导航条有一个半透明的效果,它是从0位置开始的.
      它其实是导航条内部的一个子控件,它超过了导航条的高度,子控件超过父控件也是能够显示的.
      
    3.导航控制器的使用:
        1.初始化UINavigationController
        2.设置UIWindow的rootViewController为UINavigationController
        3.根据具体情况,通过push方法添加对应个数的子控制器
        
        可以通过push方法给导航控制器添加子控制器.
        - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
        导航控制器会把子控制器的View添加到导航控制器专门存放子控制器的View上面.
        
        导航控制器的initWithRootViewContorller:设置导航控制器的根控制器.
        它其实底层调用的就是导航控制器的push方法,把传入的控制器子,添加为导航控制器的子控制器.
        
        注意:导航控制器必须要有一个根控制器.
            导航控制器的根控制器.就是导航控制器的子控制器.
          
        导航控制器当中有一个childsViewControllers数组,数组当中存放的都是导航控制器的子控制器.

原文地址:https://www.cnblogs.com/xufengyuan/p/6920756.html