UITabBarController、导航控制器、控制器关系

UITabBarController与UINavigationController类似,UITabBarController也可以用来控制多个页面导航,用户可以在多个视图控制器之间移动,并可以定制屏幕底部的选项卡栏。


借助屏幕底部的选项卡栏,UITabBarController不必像UINavigationController那样以栈的方式推入和推出视图,而是组建一系列的控制器 ( 他们各自可以是UIViewController,UINavigationController,UITableViewController或任何其他种类的视图控制器),并将它们添加到选项卡栏,使每个选项卡对应一个视图控制器。


UITabBarController一般作为应用程序的rootViewController,而且它不能作为UINavigationController的rootViewController.


UITabBarController详解:https://my.oschina.net/CarlHuang/blog/159995

具体图片解释如下:

UITabBarController、导航控制器、控制器关系

1、UINavigationController 也是一个控制器,但是他控制的对象不是view了,而是通过控制UIViewController来间接控制view,达到各个 UIViewController 之间的链接,切换业务逻辑关系。实际是个容器,存放了所有的UIViewController。


2、UIViewController 是一个UIView 控制器,在loadview 中加载view ,对UIView 进行加载,显示,消除,动画,直接操作。实际是个容器,存放了所有的UIView。


3、就好比UIView 是我们程序员,技术主管是 UIViewController,那么经理就是UINavigationController。


总结:可能是苹果当初设计这个的思想。