好多项目都同时用到了UITabBarController和UINavigationController,XCode可以直接创建这两个控制器中的其中一个,但是要一起用的话就得稍微麻烦点。
##层级关系
首先得搞清这两个控制器之间的层级关系,我们直接看官网给的图,如下所示:
从这张图可以看到:最右边的Assembled views是呈现给用户的界面,它左边的Window是最底层的窗口,重点来了,再往左,是Tab bar view,Tab bar view的上方是Navigation view,最后是用户定制的视图。
看完这个,代码就应该很好写了,我们需要把Navigation view加到 Tab bar view的内容上去,Tab bar view再加到Window上去。就是Window套UITabBarController,UITabBarController套UINavigationController, UINavigationController套UIViewController。
好了,接下来,我们开始实战。
##具体流程
###1、新建Single View Application项目
为了更好的理解,我们直接新建Single View Application
###2、删除ViewController.h等3个文件
删除如下图所示的3个文件:
ViewController.h、ViewController.m和Main.storyboard。
###3、新建MainViewController
根据上面的层级关系图,我们需要把UITabBarController加到Window上去,所以在这里,我们直接新建MainViewController,让它继承UITabBarController,如下图所示:
点击Next,继承于UITabBarController,不用勾选Also Create XIB file,如下图:
###4、修改AppDelegate.m文件
我们为了让MainViewController加到Window上去,修改AppDelegate.m文件,直接上代码,如下所示ÿ