Controller的创建及view的创建
Controller 控制器
- 控制器常见的创建方式有以下几种:
- 通过storyboard创建:
1.先加载storyboard文件(Test是storyboard的文件名)UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil];
2.接着初始化storyboard中的控制器 初始化“初始控制器”(箭头所指的控制器)MJViewController *mj = [storyboard instantiateInitialViewController];
3.通过一个标识初始化对应的控制器MJViewController *mj = [storyboard instantiateViewControllerWithIdentifier:@”mj"];
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 1.创建window self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; // 2.加载storyboard,并且创建初始化控制器(箭头所指的控制器) UIStoryboard *story=[UIStoryboard storyboardWithName:@"Main" bundle:nil]; //self.window.rootViewController=[story instantiateInitialViewController]; self.window.rootViewController=[story instantiateViewControllerWithIdentifier:@"dh"];//需要设置Storyboard ID // 3.显示窗口 [self.window makeKeyAndVisible]; return YES; }
- 直接创建
MJViewController *mj = [[MJViewController alloc] init];
- 指定xib文件来创建
MJViewController *mj = [[MJViewController alloc] initWithNibName:@"MJViewController" bundle:nil];
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; DHOneViewController *one=[[DHOneViewController alloc]initWithNibName:@"DHOneViewController" bundle:nil]; self.window.rootViewController=one; [self.window makeKeyAndVisible]; return YES; }
创建xib文件,需要设置File‘s Owner,如下图:

执行如果报错:-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "DHOneViewController" nib but the view outlet was not set.记得要连线,指定view,如看下图:

控制器的View

•控制器的view是延迟加载的:用到时再加载
•可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载
•控制器的view加载完毕就会调用viewDidLoad方法

浙公网安备 33010602011771号