亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS的UI開發中UITabBarControlle的基本使用教程

2020-07-26 03:31:24
字體:
來源:轉載
供稿:網友

UITabBarController的基本使用

一、簡單介紹

UITabBarController和UINavigationController類似,UITabBarController也可以輕松地管理多個控制器,輕松完成控制器之間的切換,典型的例子就是QQ、微信等應⽤。

201512393748354.png (645×307)

二、UITabBarController的使用

1.使用步驟:

(1)初始化UITabBarController

(2)設置UIWindow的rootViewController為UITabBarController

(3)創建相應的子控制器(viewcontroller)

(4)把子控制器添加到UITabBarController

2.代碼示例

新建一個空的文件,在Application的代理中編碼

YYAppDelegate.m文件

復制代碼 代碼如下:

//
//  YYAppDelegate.m
//  01-UITabBar控制器基本使用
//
//  Created by 孔醫己 on 14-6-7.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "YYAppDelegate.h"

@implementation YYAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //1.創建Window
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
   
    //a.初始化一個tabBar控制器
    UITabBarController *tb=[[UITabBarController alloc]init];
    //設置控制器為Window的根控制器
    self.window.rootViewController=tb;
   
    //b.創建子控制器
    UIViewController *c1=[[UIViewController alloc]init];
    c1.view.backgroundColor=[UIColor grayColor];
    c1.view.backgroundColor=[UIColor greenColor];
    c1.tabBarItem.title=@"消息";
    c1.tabBarItem.image=[UIImage imageNamed:@"tab_recent_nor"];
    c1.tabBarItem.badgeValue=@"123";
   
    UIViewController *c2=[[UIViewController alloc]init];
    c2.view.backgroundColor=[UIColor brownColor];
    c2.tabBarItem.title=@"聯系人";
    c2.tabBarItem.image=[UIImage imageNamed:@"tab_buddy_nor"];
   
    UIViewController *c3=[[UIViewController alloc]init];
    c3.tabBarItem.title=@"動態";
    c3.tabBarItem.image=[UIImage imageNamed:@"tab_qworld_nor"];
    
    UIViewController *c4=[[UIViewController alloc]init];
    c4.tabBarItem.title=@"設置";
    c4.tabBarItem.image=[UIImage imageNamed:@"tab_me_nor"];
  
   
    //c.添加子控制器到ITabBarController中
    //c.1第一種方式
//    [tb addChildViewController:c1];
//    [tb addChildViewController:c2];
   
    //c.2第二種方式
    tb.viewControllers=@[c1,c2,c3,c4];
   
   
    //2.設置Window為主窗口并顯示出來
    [self.window makeKeyAndVisible];
    return YES;
}

@end


實現效果:

201512393907321.png (640×960)


三、重要說明

1.UITabBar

下方的工具條稱為UITabBar ,如果UITabBarController有N個子控制器,那么UITabBar內部就會有N 個UITabBarButton作為子控件與之對應。

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

在上面的程序中,UITabBarController有4個子控制器,所以UITabBar中有4個UITabBarButton,UITabBar的結構⼤大致如下圖所示:

201512393950263.png (524×261)

2.UITabBarButton

UITabBarButton⾥面顯⽰什么內容,由對應子控制器的tabBarItem屬性來決定

 c1.tabBarItem.title=@"消息";
 c1.tabBarItem.image=[UIImage imageNamed:@"tab_recent_nor"];

201512394012185.png (524×338)

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

(1)[tb addChildViewController:c1];

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

注意:展示的順序和添加的順序一致,和導航控制器中不同,展現在眼前的是第一個添加的控制器對應的View。

UITabBarController生命周期(使用storyoard搭建)
一、UITabBarController在storyoard中得搭建
1.新建一個項目,把storyboard中默認的控制器刪除,拖UITab Bar Controller。
2.創建viewcontroller,添加到UITab Bar Controller中去(連線)。

201512394036062.png (503×473)

注意點:連線的順序就是將來顯示的順序,顯示在眼前的為第一個連線的view。
提示:控制器的界面對應的tabbarbutton和圖片顯示什么內容,由它的控制器確定。
3.設置子控制器的UITabBar等信息。

201512394053803.png (1344×500)

4.運行效果

201512394114892.png (640×960)

二、UITabBarController的生命周期演示
思路:新建三個控制器類來對控制器進行分別管理,重寫內部的生命周期方法就可以了解UITabBarController內部管理機制。
 
分析代碼:

復制代碼 代碼如下:

//
//  YYbaseViewController.m
//  02-uitabbarcontroller
//
//  Created by 孔醫己 on 14-6-8.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

#import "YYbaseViewController.h"

@interface YYbaseViewController ()

@end


復制代碼 代碼如下:

@implementation YYbaseViewController

// 當控制器的view加載完畢就調用
- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"%@ -  控制器的view加載完畢", [self class]);
}

// 控制器即將顯示的時候調用
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];
    NSLog(@"%@ -  控制器即將顯示", [self class]);
}

// 控制器完全顯示的時候調用
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    NSLog(@"%@ -  控制器完全顯示", [self class]);
}

// 控制器即將消失的時候調用
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    NSLog(@"%@ -  控制器即將消失", [self class]);
}
// 控制器完全消失的時候調用
- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
    NSLog(@"%@ -  控制器完全消失", [self class]);
}

- (void)viewWillUnload
{
    [super viewWillUnload];
    NSLog(@"%@ -  view即將被銷毀", [self class]);
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    NSLog(@"%@ -  view完全被銷毀", [self class]);
}

- (void)dealloc
{
    NSLog(@"%@",  [self class]);
}

@end


(1)運行程序,打印輸出為:

說明201512394133795.png (706×64):當把三個子控制器都添加給UITabBarController來管理后,當程序啟動時它只會加載第一個添加的控制器的view。
(2)點擊聯系人按鈕,切換到第二個界面。打印輸出為:

201512394211525.png (677×120)

說明:先把第一個view移開,再把新的view添加上去,但是第一個view并沒有被銷毀。
(3)重新點擊消息界面,打印如下:

201512394226945.png (695×168)

說明:先重新切換到消息界面,one控制器直接即將顯示,沒有進行加載證明了(2)中第一個view移除后并沒有被銷毀(因為它的控制器還存在,有一個強引用引用著它),且two的view移除后也沒有被銷毀。無論怎么切換,控制器和view都不會被銷毀。
UINavigationController和UITabBarController一個通過棧來管理,一個通過普通的數組來進行管理。
 
補充說明:UITabBarController中的UITabBar實際高度為49.
在Application的下面方法中打印UITabBar的frame進行查看。

復制代碼 代碼如下:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    UITabBarController *tb=(UITabBarController*)self.window.rootViewController;
    NSLog(@"%@",NSStringFromCGRect(tb.tabBar.frame));
}

打印結果為:

201512394253189.png (668×73)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频观看免费网站| 91亚洲va在线va天堂va国| 久久精品国产久精国产一老狼| 91亚洲人电影| 丝袜美腿精品国产二区| 国产精品亚洲第一区| 亚洲欧美一区二区精品久久久| 在线观看中文字幕亚洲| 最近中文字幕2019免费| 欧美最猛性xxxxx免费| 亚洲xxxx在线| 国产999在线观看| 热门国产精品亚洲第一区在线| 日韩禁在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产日韩精品在线播放| 日韩精品一区二区视频| 久久久久999| 国产精品视频xxxx| 亚洲国产精品高清久久久| 欧美日韩久久久久| 青青在线视频一区二区三区| 日韩中文字幕视频在线观看| 欧美丰满片xxx777| 国产91精品青草社区| 91久久精品美女高潮| 91日韩在线视频| 国产精品18久久久久久首页狼| 日韩精品有码在线观看| 欧美日韩在线观看视频| 色噜噜狠狠狠综合曰曰曰| 91在线直播亚洲| 精品国内产的精品视频在线观看| 成人福利在线观看| 亚洲人成网在线播放| 久久久国产精品亚洲一区| 久久久久国产精品www| 欧美激情视频网站| 中文字幕在线亚洲| 国产成人精品电影久久久| 亚洲精品98久久久久久中文字幕| 日韩精品在线观看一区二区| 日本道色综合久久影院| 国产精品吊钟奶在线| 欧美精品午夜视频| 日本一区二区三区四区视频| 日韩av电影在线播放| 亚洲自拍偷拍区| 日韩高清电影免费观看完整版| 国产精品久久久久久久久免费看| 亚洲国产毛片完整版| 亚洲精品视频中文字幕| 欧美激情精品久久久久久黑人| 亚洲有声小说3d| 色综合天天狠天天透天天伊人| www国产精品com| 久久精品视频99| 国产精品一区电影| 久久精品在线视频| 黑人与娇小精品av专区| 精品视频一区在线视频| 久久国产精品免费视频| 2019中文字幕全在线观看| 国产精品亚洲网站| 亚洲精品一区av在线播放| 一本色道久久88综合亚洲精品ⅰ| 日韩欧美大尺度| 亚洲国产精品久久久久久| 懂色aⅴ精品一区二区三区蜜月| 欧美电影免费看| 久久久免费高清电视剧观看| 国产精品成人观看视频国产奇米| 亚洲乱码国产乱码精品精天堂| 精品无人区乱码1区2区3区在线| 亚洲国产另类 国产精品国产免费| 97碰在线观看| 亚洲美女自拍视频| 午夜精品久久久久久久久久久久久| 精品偷拍各种wc美女嘘嘘| 91视频九色网站| 国产精品一区二区三区成人| 91国语精品自产拍在线观看性色| 一区二区在线视频播放| 一本一本久久a久久精品牛牛影视| 欧美日韩中文字幕在线| 中文字幕一区电影| 久久综合久久美利坚合众国| 日韩中文av在线| 亚洲成av人片在线观看香蕉| 国产精品自拍视频| 久久综合久中文字幕青草| 日韩av片电影专区| 伊人久久精品视频| 国产精品aaaa| 成人av资源在线播放| 日韩精品视频中文在线观看| 国产精品一区久久| 国产精品www色诱视频| 欧美日韩免费在线观看| 日韩欧美国产黄色| 亚洲系列中文字幕| 欧美精品电影免费在线观看| 国产精品亚洲综合天堂夜夜| 日韩在线播放av| 欧美亚洲成人xxx| 亚洲欧洲日本专区| 欧美性猛交xxxx久久久| 亚洲成人网在线| xxav国产精品美女主播| 青青在线视频一区二区三区| 亚洲欧洲国产精品| 992tv成人免费影院| 一区二区欧美在线| 成人黄色av网| 国产mv久久久| 亚洲白拍色综合图区| 亚州精品天堂中文字幕| 精品久久久久久久久国产字幕| 成人亚洲激情网| 91精品免费视频| 欧美午夜美女看片| 欧美激情第三页| 亚洲老头同性xxxxx| 国产精品草莓在线免费观看| 成人av色在线观看| 国产精品91久久| 国产在线精品播放| 国产精品国产亚洲伊人久久| 亚洲一区av在线播放| 在线日韩精品视频| 久久精品亚洲国产| 国产女人精品视频| 在线观看国产欧美| 亚洲精品日韩欧美| 91高清在线免费观看| 亚洲国产精品一区二区久| 国产精品一久久香蕉国产线看观看| 中文字幕欧美日韩精品| 亚洲小视频在线观看| 麻豆成人在线看| 久久色精品视频| 国产精品免费观看在线| 国产成人鲁鲁免费视频a| 97香蕉久久超级碰碰高清版| 97视频在线观看免费高清完整版在线观看| 麻豆国产精品va在线观看不卡| 最新91在线视频| 国产在线一区二区三区| 日韩av片免费在线观看| 欧美与黑人午夜性猛交久久久| 免费91在线视频| 日韩风俗一区 二区| 欧美性受xxxx白人性爽| 亚洲欧美日韩中文在线制服| 亚洲乱亚洲乱妇无码| 韩国日本不卡在线| 日韩男女性生活视频| 欧美国产日韩中文字幕在线| 日韩欧美在线视频观看| 中文字幕欧美亚洲| 91国产视频在线播放| 久久人体大胆视频| 国产91精品在线播放| 亚洲欧美激情精品一区二区|