你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS的UI開辟中UITabBarControlle的根本應用教程

iOS的UI開辟中UITabBarControlle的根本應用教程

編輯:IOS開發綜合

UITabBarController的根本應用

1、簡略引見

UITabBarController和UINavigationController相似,UITabBarController也能夠輕松地治理多個掌握器,輕松完成掌握器之間的切換,典范的例子就是QQ、微信等應⽤。

201512393748354.png (645×307)

2、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)


3、主要解釋

1.UITabBar

下方的對象條稱為UITabBar ,假如UITabBarController有N個子掌握器,那末UITabBar外部就會有N 個UITabBarButton作為子控件與之對應。

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

在下面的法式中,UITabBarController有4個子掌握器,所以UITabBar中有4個UITabBarButton,UITabBar的構造⼤年夜致以下圖所示:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462866.png (524×261)

2.UITabBarButton

UITabBarButton⾥面顯⽰甚麼內容,由對應子掌握器的tabBarItem屬性來決議

 c1.tabBarItem.title=@"新聞";
 c1.tabBarItem.image=[UIImage imageNamed:@"tab_recent_nor"];

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462801.png (524×338)

3.有兩種方法可以往UITabBarController中添加子掌握器

(1)[tb addChildViewController:c1];

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

留意:展現的次序和添加的次序分歧,和導航掌握器中分歧,展示在面前的是第一個添加的掌握器對應的View。

UITabBarController性命周期(應用storyoard搭建)
1、UITabBarController在storyoard中得搭建
1.新建一個項目,把storyboard中默許的掌握器刪除,拖UITab Bar Controller。
2.創立viewcontroller,添加到UITab Bar Controller中去(連線)。

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462813.png (503×473)

留意點:連線的次序就是未來顯示的次序,顯示在面前的為第一個連線的view。
提醒:掌握器的界面臨應的tabbarbutton和圖片顯示甚麼內容,由它的掌握器肯定。
3.設置子掌握器的UITabBar等信息。

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462804.png (1344×500)

4.運轉後果

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462890.png (640×960)

2、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)運轉法式,打印輸入為:

解釋https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462852.png (706×64):當把三個子掌握器都添加給UITabBarController來治理後,當法式啟動時它只會加載第一個添加的掌握器的view。
(2)點擊接洽人按鈕,切換到第二個界面。打印輸入為:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462865.png (677×120)

解釋:先把第一個view移開,再把新的view添加上去,然則第一個view並沒有被燒毀。
(3)從新點擊新聞界面,打印以下:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462841.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));
}

打印成果為:

https://www.ios5.online/ios/UploadFiles_8070/201703/2017031615462839.png (668×73)

【iOS的UI開辟中UITabBarControlle的根本應用教程】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved