iOS開發UI篇—UITabBarController生命週期(使用storyoard搭建)

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   ar   os   使用   for   

iOS開發UI篇—UITabBarController生命週期(使用storyoard搭建) 一、UITabBarController在storyoard中得搭建1.建立一個項目,把storyboard中預設的控制器刪除,拖UITab Bar Controller。2.建立viewcontroller,添加到UITab Bar Controller中去(連線)。注意點:連線的順序就是將來顯示的順序,顯示在眼前的為第一個連線的view。提示:控制器的介面對應的tabbarbutton和圖片顯示什麼內容,由它的控制器確定。3.設定子控制器的UITabBar等資訊。 4.運行效果 二、UITabBarController的生命週期示範思路:建立三個控制器類來對控制器進行分別管理,重寫內部的生命週期方法就可以瞭解UITabBarController內部管理機制。 分析代碼:
 1 #import "TXAppDelegate.h" 2  3 @implementation TXAppDelegate 4  5 /** 6  *  app載入完畢的時候調用(一般只調用一次) 7  * 8  */ 9 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions10 {11     NSLog(@"didFinishLaunchingWithOptions");12     return YES;13 }14 15 /**16  *  app失去焦點的時候調用(UI控制項不能正常使用)17  */18 - (void)applicationWillResignActive:(UIApplication *)application19 {20     NSLog(@"applicationWillResignActive");21 }22 23 /**24  *  app進入背景時候調用(app消失不見)25  */26 - (void)applicationDidEnterBackground:(UIApplication *)application27 {28     NSLog(@"applicationDidEnterBackground");29 }30 31 /**32  *  app進入前台的時候調用(app顯示出來)33  */34 - (void)applicationWillEnterForeground:(UIApplication *)application35 {36     NSLog(@"applicationWillEnterForeground");37 }38 39 /**40  *  當app獲得焦點的時候調用(這時候整個app的UI控制項都能正常使用)41  */42 - (void)applicationDidBecomeActive:(UIApplication *)application43 {44 //    UITabBarController *tabbarVc = (UITabBarController *)self.window.rootViewController;45 //    NSLog(@"%@", NSStringFromCGRect(tabbarVc.tabBar.frame));46     47 //    for (UIView *child in tabbarVc.tabBar.subviews) {48 //        if ([child isKindOfClass:[UIImageView class]]) {49 //            [child removeFromSuperview];50 //        }51 //    }52     NSLog(@"applicationDidBecomeActive");53 }54 55 //app進入後台:休眠,  不能接受事情(比如關閉)56 /**57  *  app關閉的時候調用(一般情況下不會調用)58  */59 - (void)applicationWillTerminate:(UIApplication *)application60 {61     NSLog(@"applicationWillTerminate");62 }63 64 @end

 

(1)運行程式,列印輸出為:說明:當把三個子控制器都添加給UITabBarController來管理後,當程式啟動時它只會載入第一個添加的控制器的view。(2)點擊連絡人按鈕,切換到第二個介面。列印輸出為:說明:先把第一個view移開,再把新的view添加上去,但是第一個view並沒有被銷毀。(3)重新點擊訊息介面,列印如下:說明:先重新切換到訊息介面,one控制器直接即將顯示,沒有進行載入證明了(2)中第一個view移除後並沒有被銷毀(因為它的控制器還存在,有一個強引用引用著它),且two的view移除後也沒有被銷毀。無論怎麼切換,控制器和view都不會被銷毀。UINavigationController和UITabBarController一個通過棧來管理,一個通過普通的數組來進行管理。 補充說明:UITabBarController中的UITabBar實際高度為49.在Application的下面方法中列印UITabBar的frame進行查看。 

列印結果為:

iOS開發UI篇—UITabBarController生命週期(使用storyoard搭建)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.