iOS - tabbar詳解

1.UITabBar

下方的工具條稱為UITabBar ,如果UITabBarController有N個(gè)子控制器,那么UITabBar內(nèi)部就會有N 個(gè)UITabBarButton作為子控件與之對應(yīng)。

UITabBarButton在UITabBar中得位置是均分的,UITabBar的高度為49。

在上面的程序中,UITabBarController有4個(gè)子控制器,所以UITabBar中有4個(gè)UITabBarButton,UITabBar的結(jié)構(gòu)?大致如下圖所示:


2.UITabBarButton

UITabBarButton?面顯?什么內(nèi)容,由對應(yīng)子控制器的tabBarItem屬性來決定

c1.tabBarItem.title=;

c1.tabBarItem.image=[UIImage imageNamed:tab_recent_nor];


3.有兩種方式可以往UITabBarController中添加子控制器

(1)[tb addChildViewController:c1];

(2)tb.viewControllers=@[c1,c2,c3,c4];

展示的順序和添加的順序一致,和導(dǎo)航控制器中不同,展現(xiàn)在眼前的是第一個(gè)添加的控制器對應(yīng)的View。

4.設(shè)計(jì)思路

在控制器中添加導(dǎo)航控制器,講控制器做為導(dǎo)航控制器的根控制器,再將控制器加載到tabarcontroller中。

//tabBar1添加

NewsViewController *news = [[NewsViewController alloc] init];

UINavgationController *nc1 = [[UINavgationController alloc] initWithRootViewController:news];

nc1.tabBarItem.title = @"欄目1";

nc1.tabBarItem.image = [UIImage imageNamed:@"menu_icon_main.png"];

[nc1.tabBarItem.title sizeWithFont:[UIFont systemFontOfSize:20]];

//tabBar2添加

NewsViewController *news2 = [[NewsViewController alloc] init];

UINavViewController *nc2 = [[UINavViewController alloc] initWithRootViewController:news2];

nc2.tabBarItem.title = @"欄目2";

nc2.tabBarItem.image = [UIImage imageNamed:@"menu_icon_main.png"];

[nc2.tabBarItem.title sizeWithFont:[UIFont systemFontOfSize:20]];

....

NSArray *item = [NSArray arrayWithObjects:nc1,nc2, nil];? //最多可添加5個(gè)欄目

UITabBarController *tabBar = [[UITabBarController alloc] init];

[tabBar setDelegate:self];

[tabBar setViewControllers:item];

//將tabbarcontroller做為window餓的根視圖顯示出來

[self.window setRootViewController:tabBar];

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

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

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