控制器View创建方式

三种创建方式:(注意:不论哪种方式都需要设置窗口的根控制器

1.通过代码创建(个人建议:虽然代码创建繁琐,但是还是觉得代码才是王道)

   loadView方法在控制器中实现这个方法,属于延迟加载方法,用到时才会才会加载

1 - (void)loadView
2 {
3     self.view = [[UIView alloc] init];
4     self.view.backgroundColor = [UIColor orangeColor];
5 }

只要实现了loadView方法xib和storyboard实现的View都不会去管,全部按照loadView描述的View加载

2.通过xib创建:

   优点:能够用拖控件的方式来描述一个View里面的情况

   缺点:和storyboard相比需要在File's Owner的Class属性中设置所属自定义控制器,并且要设置控制器所属View(连线)

3.通过storyboard创建

   优点:能够用拖控件的方式来描述一个View里面的情况,如果设置了storyboard为Mainstoryboard的话,就可以免去代码创建Window等的步骤,系统             全会自动生成

 1 // 代码创建方式
 2 
 3 #import "LMPAppDelegate.h"
 4 #import "LMPOneViewController.h"
 5 
 6 @implementation LMPAppDelegate
 7 
 8 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 9 {
10     // 创建窗口
11     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
12     // 设置窗口颜色为白色
13     self.window.backgroundColor = [UIColor whiteColor];
14     // 设置窗口根控制器
15     self.window.rootViewController  = [[LMPOneViewController alloc] init];
16     
17     // 显示窗口
18     [self.window makeKeyAndVisible];
19     
20     return YES;
21 }
 1 // Storyboard创建方式
 2 
 3 #import "LMPAppDelegate.h"
 4 #import "LMPOneViewController.h"
 5 
 6 @implementation LMPAppDelegate
 7 
 8 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 9 {
10     // 创建窗口
11     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
12     // 设置窗口颜色为白色
13     self.window.backgroundColor = [UIColor whiteColor];
14     
15     // 加载Storyboard,@"One"为Storyboard文件名,nil默认为[NSBundle mainBundle]
16     UIStoryboard *one = [UIStoryboard storyboardWithName:@"One" bundle:nil];
17     
18     // 获得Storyboard的箭头所指的控制器
19 //    UIViewController *vc = [one instantiateInitialViewController];
20     
21     // 获得Storyboard中标示符为@"Other"对应的控制器
注意:我所用的控制器是系统自带的控制器,最好还是自己定义一个控制器
22 UIViewController *vc = [one instantiateViewControllerWithIdentifier:@"Other"]; 23 24 // 设置窗口根控制器 25 self.window.rootViewController = vc; 26 27 // 显示窗口 28 [self.window makeKeyAndVisible]; 29 30 return YES; 31 }

 

 1 // xib创建方式
 2 
 3 #import "LMPAppDelegate.h"
 4 #import "LMPOneViewController.h"
 5 
 6 @implementation LMPAppDelegate
 7 
 8 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 9 {
10     // 创建窗口
11     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
12     // 设置窗口颜色为白色
13     self.window.backgroundColor = [UIColor whiteColor];
14     
15     // 加载xib文件,注意xib文件中Class设置的什么类型的控制器返回的就是什么类型的控制器
16     // 主动加载一个xib文件
17     LMPOneViewController *vc = [[LMPOneViewController alloc] initWithNibName:@"Two" bundle:nil];
18     
19     /*
20        LMPOneViewController *vc = [[LMPOneViewController alloc] init];
21        规则先后:
22                默认最先加载文件名为@“LMPOneView”的xib,没有就找名字为@“LMPOneViewController”的xib,
23                如果也没有系统会自动生成一个空白的View
24      
25        注意:如果更改了没有效果是因为你没有重新卸载模拟器的软件,并且最好在xcode中clean一下
26      
27      */
28     
29     // 设置窗口根控制器
30     self.window.rootViewController = vc;
31    
32     // 显示窗口
33     [self.window makeKeyAndVisible];
34     
35     return YES;
36 }

 

 

 

posted @ 2015-04-12 21:53  pocket_live  阅读(189)  评论(0编辑  收藏  举报