UITabBarController是IOS中很常用的一个viewController,例如系统的闹钟程序,ipod程序等。UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中(在后面会详细解释)
先通过UITabBarController的层级图来分析一下它的结构组成
它是由下方的TabBar和用来显示内容的Custom content组成,整个界面又可以认为是TabBarController的显示视图
下面先说一下标签控制器和导航控制器在使用上的区别:
1、导航视图控制器,管理的控制器之间存在层级关系(依赖关系)
标签视图控制器,管理的控制器之间是并列关系(同时存在,互不干扰)
2、管理方式
导航控制器以栈的形式管理多个试图控制器,push入栈,pop出栈,当返回上一界面时,空间回收
标签视图控制器,以不可变数组管理,而且创建时必须要全部指定所管理的多个视图控制器,而且多个视图控制器同时存在,空间不回收
3、视图控制器之间的嵌套
正常用法:标签视图控制器管理多个导航控制器,每个导航控制器又管理多个单视图控制器(每个界面都有导航条,导航条都是不同的,单视图控制器可以自定义导航内容)
非常用法:导航控制器管理标签控制器,标签控制器用来管理多个单视图控制器(每个界面都有导航条,但是导航条都是一样的,单视图控制器不可以自定义导航条内容),这种用法不符合逻辑,很少使用
导航控制器、标签控制器都是多视图控制器,可以管理多个视图控制器,但是UITableViewController、UIViewController是单视图控制器,不可以管理视图控制器,只能管理视图
接下来再熟悉一下视图下面的UITabBar的结构组成
注意:UITabBarButton在UITabBar中得位置是均分的,UITabBar的高度为49