1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2 { 3 // 1.创建UIWindow 4 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 5 self.window.backgroundColor = [UIColor whiteColor]; 6 7 /* 8 // 2.创建控制器 9 // 2.1第一种创建方式 10 NJViewController *vc = [[NJViewController alloc] init]; 11 vc.view.backgroundColor = [UIColor redColor]; 12 */ 13 /* 14 // 2.2第二种创建方式 15 // NJViewController *vc = [[NJViewController alloc] init]; 16 17 // 加载UIStoryboard(注意:仅仅是加载名称叫做Test的storyboard, 并不会创建storyboard重的控制器以及控件) 18 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil]; 19 20 // 创建storyboard中箭头指向的控制器 21 // NJViewController *vc = [storyboard instantiateInitialViewController]; 22 23 // UIViewController *vc = [storyboard instantiateInitialViewController]; 24 25 UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"two"]; 26 // UINib *nib = [UINib nibWithNibName:@"" bundle:[NSBundle mainBundle]]; 27 // [[nib instantiateWithOwner:nil options:nil] lastObject]; 28 */ 29 30 // 2.3第三种创建方式 31 // was unable to load a nib named "One"‘ 32 // loaded the "One" nib but the view outlet was not set.‘ 33 34 NJViewController *vc = [[NJViewController alloc] initWithNibName:@"One" bundle:nil]; 35 36 self.window.rootViewController = vc; 37 38 // 3.让UIWindow显示出来 39 [self.window makeKeyAndVisible]; 40 return YES; 41 }
模仿有storyboard的项目控制器的创建:
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2 { 3 4 // Override point for customization after application launch. 5 // 1.创建winodw 6 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 7 // 2.创建控制器 8 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 9 NJViewController * vc = [storyboard instantiateInitialViewController]; 10 // 3.设置window的根控制器 11 self.window.rootViewController = vc; 12 // 4.显示window 13 [self.window makeKeyAndVisible]; 14 15 return YES; 16 }
controller中view的创建方式
1 // 2 // NJAppDelegate.m 3 // 05-控制器View的创建 4 // 5 // Created by apple on 14-6-4. 6 // Copyright (c) 2014年 heima. All rights reserved. 7 // 8 9 #import "NJAppDelegate.h" 10 #import "NJViewController.h" 11 /* 12 1.没有同名xib情况下 13 2.通过 storyboard 创建 14 3.有指定xib情况下创建 15 4.有同名xib情况 16 5.有同名去掉controll的情况 17 6.loadveiw 18 */ 19 @implementation NJAppDelegate 20 21 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 22 { 23 // 1.创建UIWindow 24 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 25 self.window.backgroundColor = [UIColor whiteColor]; 26 27 28 // 2.创建控制器 29 NJViewController *vc = [[NJViewController alloc] init]; 30 31 // 其实是两部操作, 首先调用loadview方法, 创建控制器的veiw,然后再设置控制器的view的颜色为紫色, 也就是说后一次的颜色覆盖掉了前一次的颜色 32 vc.view.backgroundColor = [UIColor purpleColor]; 33 34 // 3.设置控制器为window的根控制器 35 self.window.rootViewController = vc; 36 37 // 4.显示window(在这一行才用到了控制器的veiw) 38 [self.window makeKeyAndVisible]; 39 40 return YES; 41 } 42 43 - (void) test 44 { 45 /* 46 // 1.第一种方式:没有xib和storyboard 47 // (如果没有xib和storyboard, 会自动创建一个空白的view做为控制器的veiw) 48 NJViewController *vc = [[NJViewController alloc] init]; 49 */ 50 51 /* 52 //2.通过 storyboard 创建 53 // 如果通过storyboard创建, 会创建箭头指向view做为控制器的veiw 54 55 // 如果重写了控制器的loadview方法, 就不会创建storyboard中描述的view作为控制器的view, 而是创建一个空白的veiw做为控制器的veiw 56 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil]; 57 NJViewController *vc = [storyboard instantiateInitialViewController]; 58 */ 59 60 /* 61 // 3.有指定xib情况下创建 62 // 如果通过xib, 会创建xib中描述的veiw做为控制器的veiw 63 NJViewController *vc = [[NJViewController alloc] initWithNibName:@"One" bundle:nil]; 64 */ 65 66 /* 67 // 4.有同名xib情况 68 // 如果有同名的xib, 会自动找到同名xib中描述的view做为控制器的veiw 69 NJViewController *vc = [[NJViewController alloc] init]; 70 */ 71 72 /* 73 // 5.有同名去掉Controller的 xib情况 74 // 如果有有同名去掉Controller的xib, 会自动找到该xib的view做为控制器的view 75 NJViewController *vc = [[NJViewController alloc] init]; 76 */ 77 78 // 6.重写控制器的loadveiw方法 79 // 如果重写了控制器的loadview方法, 就不会去加载创建同名去掉controller的xib和同名的xib, 而是创建一个空白的veiw做为控制器的veiw 80 NJViewController *vc = [[NJViewController alloc] init]; 81 } 82 83 @end
时间: 2024-10-08 10:18:20