控制器 :一個iOS的app很少只由一個控制器組成,除非這個app極其簡單當app中有多個控制器的時候,我們就需要對這些控制器進行管理有多個view時,可以用一個大的view去管理1個或者多個小view,控制器也是如此,用1個控制器去管理其他多個控制器比如,用一個控制器A去管理3個控制器B、C、D,...
控制器 :
|
|
1.直接代碼創建(alloc+init) |
2.通過 Xib 文件創建 |
3.通過 storyboard 創建 |
步驟: AppDelegate.m
1 #import "AppDelegate.h" 2 #import "TDViewController.h" 3 4 @interfaceAppDelegate () 5 @end 6 7 @implementation AppDelegate 8 9 //應用程式啟動完成,調用此方法;如果因為記憶體等原因,應用程式被操作系統幹掉,再次點擊圖標,會調用此方法! 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 11 12 // 1. 實例化UIWindow(特殊的UIView) 13 self.window = [[UIWindowalloc] initWithFrame:[UIScreenmainScreen].bounds]; 14 15 // 2.alloc init 方法( 實例化視圖控制器) 16 TDViewController *vc = [[TDViewControlleralloc] init]; 17 18 self.window.rootViewController = vc; // 設置根控制器(把視圖控制器添加到window視窗的根視圖上) 19 [self.windowmakeKeyAndVisible]; // 讓視窗變成主視窗並且可見 20 21 returnYES; 22 } 23 ……………
創建一個控制器:TDViewController,繼承自 UIViewController TDViewController.m
1 #import "TDViewController.h" 2 3 @interfaceTDViewController () 4 @end 5 6 @implementation TDViewController 7 8 - (void)viewDidLoad { 9 [superviewDidLoad]; 10 // Do any additional setup after loading the view. 11 NSLog(@"你載入的是 TDViewController"); 12 } 13 ……………
列印輸出:
2016-01-19 18:44:11.706 UIViewController(alloc+init)[2653:418332] 你載入的是 TDViewController |
關於報錯:
報錯:'-[UIViewController _loadViewFromNibNamed:bundle:] was unable to load a nib named “TDView"' 解決:拖一個view |
報錯:'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "TDView" nib but the view outlet was not set.' 解決: 在xib 的 File‘s Ower上,綁定class到TDViewController,再右鍵View連線 |
創建一個TDView.xib AppDelegate.m
1 #import "AppDelegate.h" 2 #import "TDViewController.h" 3 4 @interfaceAppDelegate () 5 @end 6 7 @implementation AppDelegate 8 9 //應用程式啟動完成,調用此方法;如果因為記憶體等原因,應用程式被操作系統幹掉,再次點擊圖標,會調用此方法! 10 - (BOOL)application:(UIApplication *)application 11 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 12 13 // 1.實例化UIWindow(特殊的UIView) 14 self.window = [[UIWindowalloc] initWithFrame:[UIScreenmainScreen].bounds]; 15 16 // 2. 載入指定的xib文件 17 TDViewController *vc = 18 [[TDViewControlleralloc] initWithNibName:@"TDView"bundle:nil]; 19 20 self.window.rootViewController = vc; // 設置根控制器(把視圖控制器添加到window視窗的根視圖上) 21 [self.windowmakeKeyAndVisible]; // 讓視窗變成主視窗並且可見 22 23 returnYES; 24 } 25 ……………
創建一個控制器:TDViewController,繼承自 UIViewController TDViewController.m
1 #import "TDViewController.h" 2 3 @interfaceTDViewController () 4 @end 5 6 @implementation TDViewController 7 8 - (void)viewDidLoad { 9 [superviewDidLoad]; 10 // Do any additional setup after loading the view. 11 NSLog(@"你載入的是 TDViewController"); 12 } 13 ……………列印輸出:
2016-01-19 19:08:43.400 UIViewController(Xib)[3121:549327] 你載入的是 TDViewController |
步驟:
創建一個TD.storyboard AppDelegate.m
1 #import "AppDelegate.h" 2 #import "TDViewController.h" 3 4 @interfaceAppDelegate () 5 @end 6 7 @implementation AppDelegate 8 9 //應用程式啟動完成,調用此方法;如果因為記憶體等原因,應用程式被操作系統幹掉,再次點擊圖標,會調用此方法! 10 -(BOOL)application:(UIApplication *)application 11 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 12 13 // 1.實例化UIWindow(特殊的UIView) 14 self.window = [[UIWindowalloc] initWithFrame:[UIScreenmainScreen].bounds]; 15 16 // 2. 先載入sb文件(sb 裡面的 Class 要指向要創建的控制器的類名)(bundle 傳nil 預設就是main bundle) 17 UIStoryboard *sb = [UIStoryboardstoryboardWithName:@"TD"bundle:nil]; 18 19 // 3.接著初始化storyboard中的控制器 20 // 方法1:初始化“初始控制器”(sb中箭頭所指的控制器)<通過載入sb文件來創建控制器的視圖,即視圖控制器> 21 TDViewController *vc = [sb instantiateInitialViewController]; 22 23 // 方法2:通過一個標識,初始化對應的控制器(需要在sb上的控制器設置 Storyboard ID) 24 TDViewController *vc = [sb instantiateViewControllerWithIdentifier:@"TD"]; 25 26 self.window.rootViewController = vc; // 設置根控制器(把視圖控制器添加到window視窗的根視圖上) 27 [self.windowmakeKeyAndVisible]; // 讓視窗變成主視窗並且可見 28 29 returnYES; 30 } 31 ……………
創建一個控制器:TDViewController,繼承自 UIViewController TDViewController.m
1 #import "TDViewController.h" 2 3 @interfaceTDViewController () 4 @end 5 6 @implementation TDViewController 7 8 - (void)viewDidLoad { 9 [superviewDidLoad]; 10 // Do any additional setup after loading the view. 11 NSLog(@"你載入的是 TDViewController"); 12 } 13 ……………
列印輸出:
2016-01-19 19:19:53.029 UIViewController(storyboard)[3381:616265] 你載入的是 TDViewController |
出處:http://www.cnblogs.com/shorfng/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
如有疑問,請發送郵件至 [email protected] 聯繫我。 By:藍田(Loto)