標籤:
1.視圖控制器各個方法調用時機
2.選項卡(Tab Bar)和導覽列(Navigation Bar)
視圖控制器各個方法調用時機
init:方法
在init方法中執行個體化必要的對象(遵從LazyLoad思想)init方法中初始化ViewController本身 loadView:方法這是當沒有正在使用nib視圖頁面,子類將會建立自己的自訂視圖層。絕不能直接調用 viewDidLoad:方法在視圖載入後被調用 viewWillAppear:方法視圖即將可見時調用 viewDidAppear:方法視頻完全過渡到螢幕上時調用 viewWillDisappear:方法視圖被駁回時調用,覆蓋或以其他方式隱藏 viewDidDisappear:方法視圖被駁回後調用,覆蓋或以其他方式隱藏 當A視圖切換到B視圖時,順序流程1.B視圖的viewDidLoad2.A視圖的viewWillDisappear3.B視圖的viewWillAppear4.A視圖viewDidDisappear5.B視圖viewDidAppear 選項卡(Tab Bar)和導覽列(Navigation Bar)
//AppDelegate.h檔案
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property(strong,nonatomic) UITabBarController *tabBarController;//底部選項卡控制器
@end
//AppDelegate.m檔案
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
//訊息控制器
MessageViewController *msgController=[[MessageViewController alloc] init];
UINavigationController *navMsg=[[UINavigationController alloc] initWithRootViewController:msgController];
//選項卡的圖片樣式以這種方式處理,避免圖片無法完全顯示
UITabBarItem *msgTabItem = [[UITabBarItem alloc]initWithTitle:@"訊息" image:[[UIImage imageNamed:@"[email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"[email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
navMsg.tabBarItem=msgTabItem;
//連絡人控制器
ContactViewController *conController=[[ContactViewController alloc] init];
UINavigationController *navCon=[[UINavigationController alloc] initWithRootViewController:conController];
UITabBarItem *conTabItem = [[UITabBarItem alloc]initWithTitle:@"連絡人" image:[[UIImage imageNamed:@"tab_ [email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"tab_ [email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
navCon.tabBarItem=conTabItem;
//動態控制器
DynamicViewController *dynController=[[DynamicViewController alloc] init];
UINavigationController *navDyn=[[UINavigationController alloc] initWithRootViewController:dynController];
UITabBarItem *dynTabItem = [[UITabBarItem alloc]initWithTitle:@"動態" image:[[UIImage imageNamed:@"tab_ [email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"tab_ [email protected]"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
navDyn.tabBarItem=dynTabItem;
self.tabBarController=[[UITabBarController alloc] init];
[email protected][navMsg,navCon,navDyn];
self.tabBarController.selectedIndex=0;
//由於iPhone是單視窗程序,所以也就只有這麼一個Window對象,而且是UIWindow,不是NSWindow。而根據文檔上所說:這個是便捷方法,去使被使用對象的主視窗顯示到螢幕的最前端。
[self.window makeKeyAndVisible];
return YES;
}
iOS,視圖控制器相關(UIViewController)