iOS--分欄控制器

一、分欄控制器的基本概念

1、UITabBarController和UINavigationController一樣是用來管理試圖控制器的

2、與導航控制器不同,tab控制器使用數(shù)組管理子試圖控制器的,并且子試圖之間是平等關系,導航控制器所管理的試圖控制器之間上

練習:

1、創(chuàng)建若干個子視圖控制器(它們是并列的關系)

2、創(chuàng)建一個數(shù)組,將已創(chuàng)建的子視圖控制器,添加到數(shù)組中

3、創(chuàng)建UITabBarController實例

4、tabBarController.viewControllers = viewControllers;

5、添加到window的rootViewController中

二、分欄試圖控制器的結構

1、有兩部分組成

1)contentView:顯示當前controller的view

2) tabBar(標簽欄):負責切換顯示controller, 高度為49

2、tabBar

1) 標簽欄是唯一的,就好比導航控制器的導航欄

2) 設置分欄的顏色

barTintColor

3) 設置分欄的背景圖片

backgroundImage

4)標簽欄的顯示與隱藏

hidden

5)設置導航控制器默認顯示的控制器

selectedIndex

3、tabBarItem

1) 用來控制一組控制器的切換,類似選項卡,每個Tab控制一個試圖控制器,點擊哪個tab就顯示對應的試圖控制器,當前的試圖控制器

2) 每個tabBarItem都可以設置title、image/selectedImages、badgeValue

3) 設置選中的顏色

分欄控制器.tabBar.tintColor

3) TabBar只能顯示五個tab Item,如果超過五個則會自動生成個Morede 標簽顯示剩余的Tab,這些Tab可以通過編輯顯示在UITabBar上

4) 自定義Item

[UITabBarItem alloc]initWithTitle: image: tag:

[UITabBarItem alloc]initWithTabBarSystemItem:tag:

3、支持國際化

1)找到plist文件

2)右鍵? add row

3)Localizations? 默認就一個ENGLISH

4)在 添加一個 Item 1? Chinese (simplified)

練習:

1、初始化我們需要在tabBarController中顯示的視圖控制器

2、初始化UItabBarItem

3、在子視圖控制器中添加UItabBarItem

4、我們將子視圖控制器放入數(shù)組中

5、初始化tabBarcontroller

6、將數(shù)組放入tabBar控制器中,方法viewControllers

三、代理監(jiān)聽分欄控制器的切換

1、視圖將要切換時調(diào)用,viewController為將要顯示的控制器,如果返回的值為NO,則無法點擊其它分欄了

- (BOOL)tabBarController:(UITabBarController *)tabBarControllershouldSelectViewController:(UIViewController *)viewController

2、視圖已經(jīng)切換后調(diào)用,viewController 是已經(jīng)顯示的控制器

- (void)tabBarController:(UITabBarController *)tabBarControllerdidSelectViewController:(UIViewController *)viewController

3、將要開始自定義item的順序

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers

4、將要結束自定義item的順序

- (void)tabBarController:(UITabBarController *)tabBarController willEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed

5、結束自定義item的順序

- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray<__kindof UIViewController *> *)viewControllers changed:(BOOL)changed

四、集成分欄控制器和導航控制器

1、在Tab Bar控制器中某一個Tab中使用Navigation控制器,這是最常見的用法,我們將在下面具體講解這個用法

2、在一個Navigation控制器控制下的某一個或某些控制器是Tab Bar控制器,這時對該Tab Bar控制器的壓入和彈出方法和普通視圖控制器一樣

五、總結

1、UINavigationController、UITabBarController和UIViewController通常都是組合出現(xiàn)的,一定要熟練使用

2、UINavigationController、UITabBarController都是UIViewController的子類,管理的都是UIViewContrller

3、UINavigationController可以嵌套UITabBarController

4、UITabBarController可以嵌套UINavigationController

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容