一、标签栏控制器的基本概念
UITabBarController 继承于视图控制器,通过标签栏项的形式来管理视图控制器,各个标签栏项之间的视图控制器彼此独立,互不影响。
(1)UITabBarController中各个视图控制器的生命周期与UITabBarController的生命周期是一致的;
(2)点击不同的标签栏项(UITabBarItem),展现不同的视图控制器的View;
(3)被选中的标签栏项对应的视图控制器的View处于显示状态,其他视图控制器的View处于卸载状态。
二、标签栏控制器的优点
(1)使应用程序模块化,各个模块之间低耦合,团队开发易于分工;
(2)应用程序的扩展性强,可以根据需求选择性的增、删模块。
三、标签栏控制的创建
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
RootViewController *rootCtrl = [[RootViewController alloc] init];
//创建导航控制器
UINavigationController *navCtrl = [[UINavigationController alloc] initWithRootViewController:rootCtrl];
navCtrl.title = @"首页";
//创建视图
UIViewController *vc1 = [[UIViewController alloc] init];
vc1.title = @"收藏";
UIViewController *vc2 = [[UIViewController alloc] init];
vc2.title = @"搜索";
UIViewController *vc3 = [[UIViewController alloc] init];
vc3.title = @"设置";
NSArray *controllers = [NSArray arrayWithObjects:navCtrl,vc1,vc2,vc3,nil];
//创建标签栏控制器的实例
UITabBarController *tabCtrl = [[UITabBarController alloc] init];
//将存有视图控制器实例的数组赋给tabCtrl
tabCtrl.viewControllers = controllers;
//默认选择第2个视图选项卡(索引从0开始的)
tabCtrl.selectedIndex = 1;
//把tabBarController的view作为子视图添加到window
self.window.rootViewController = tabCtrl;