UITabBarController(標籤欄控制器),uitabbarcontroller
一、標籤欄控制器的基本概念
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;