如何創建一個控制器
- 控制器常見的創建方式有以下幾種
- 通過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方法