一. 標(biāo)簽視圖控制器--UITabBarController
UITabBarController--標(biāo)簽視圖控制器,用來管理沒有層次遞進(jìn)關(guān)系的試圖控制器.
視圖->圖層->子視圖
視圖控制器->管理視圖
導(dǎo)航視圖控制器->管理有層次關(guān)系的視圖控制器
標(biāo)簽視圖控制器->管理沒有層次關(guān)系的視圖控制器
UITabBarController 與 UINavigationController 一樣都繼承于UIViewController.
UITabBarController的三層結(jié)構(gòu) 1. Tab Bar Controller View ?2. Custom content ?3. Tab Bar
創(chuàng)建UITabBarController步驟:
1. 創(chuàng)建UITabBarController的實(shí)例化對象;
2. 將UITabBarController對象管理的視圖控制器放到一個(gè)數(shù)組中;
3. 設(shè)置UITabBarController的實(shí)例化對象的子視圖控制器數(shù)組;
4. 將window的跟視圖控制器至為UITabBarController的實(shí)例化對象.
程序添加的過程:
UIWindow -> UITabBarController -> UINavigationController -> UIViewController
UITabBarController的重要屬性:
1. viewControllers 所管理的視圖控制器(NSArray)
2. tabBar 標(biāo)簽欄
3. selectedIndex 選中的某個(gè)tabBarItem
4. delegate 代理?
當(dāng)點(diǎn)擊某個(gè)標(biāo)簽的時(shí)候觸發(fā)方法
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
二. UITabBar
UITabBar包含多個(gè)UITabBarItem,每一個(gè)UITabBarItem對應(yīng)一個(gè)UIViewController.UITabBar的高度為49.系統(tǒng)最多會顯示5個(gè)UITabBarItem,當(dāng)UITabBarItem超過5個(gè)的時(shí)候系統(tǒng)會自動增加一個(gè)更多按鈕,點(diǎn)擊更多按鈕,并沒有在底部顯示而按鈕是以列表的形式顯示出來.
UITabBar的屬性:barTintColor(背景顏色) tintColor(渲染的顏色)
translucent為BOOL性屬性,半透明度,默認(rèn)為YES
UITabBarItem可以通過屬性title,badgeValue來設(shè)置標(biāo)題及提示.
自定義TabBar外觀:
可以修改器TabBarItem上的style 例如tittle 以及 Image等等.
三. UIAppearance
一鍵設(shè)定所有的導(dǎo)航視圖控制器的顏色,類似于QQ的一鍵換膚,可以通過UIAppearance協(xié)議來進(jìn)行操作.
設(shè)置全局的最好設(shè)置在appDelegate里面,否則無效
[[UITabBar appearance] setBarTintColor] = [UIColor cyanColor];
四. 三大控制器的綜合使用
UIViewController ?UINavigationController ?UITabBarController
UITabBarController是項(xiàng)目開發(fā)中常見的布局樣式,與UINavigationController不同,它的viewControllers都是并列的,而UINavigationController的則是由層級關(guān)系的.
UITabBar通常都會定義外觀以適應(yīng)程序風(fēng)格,必要時(shí)會完全自定義.
五. 擴(kuò)展內(nèi)容(NSUserDefault,NSURL)
NSUserDefault (判斷用戶是否第一次使用該app)
NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; //該方法在該應(yīng)用中,獲取到的鍵值均為同一個(gè)對象.
[user setObject:self.userName.text forKey:@"userName"];
NSURL:
UIApplication *app = [UIApplication sharedApplication]; ?//單例方法,獲取當(dāng)前的應(yīng)用對象
[app openURL :[NSURL UILWithString:@"http://www.baidu.com"]]; //打開其他應(yīng)用