如何创建一个控制器
- 控制器常见的创建方式有以下几种
- 通过storyboard创建
- 先加载storyboard文件(Test是storyboard的文件名)
- 通过storyboard创建
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil]
```
- 接着初始化storyboard中的控制器
//初始化“初始控制器”(箭头所指的控制器)
JJViewController *vc = [storyboard instantiateInitialViewController];
//通过一个标识初始化对应的控制器
JJViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@”jj"
- 直接创建
UIViewController *mj = [[UIViewController alloc] init];
- 指定xib文件来创建
JJViewController *vc = [[JJViewController alloc] initWithNibName:@"JJViewController" bundle:nil];
JJViewController的view的创建
98F18118-44D8-4FAF-A7C3-AA89011285D0.png- 如果有实现loadView,根据loadView的代码实现
- 如果info.plist有指定storyboard或者创建时有指定storyboard创建,根据storyboard的描述去创建。
- 如果指定了nibName,则根据nibName对应的xib的描述去创建
- 如果没指定nibName,先查找JJView.xib,根据对应的xib创建
- 如果没有没有JJView.xib,会查找JJViewController.xib,根据对应的xib创建
- 如果没有JJViewController.xib则会创建一个空的View
控制器view的延迟加载
- 控制器的view是延迟加载的:用到时再加载
- 可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载
- 控制器的view加载完毕就会调用viewDidLoad方法
网友评论