创建控制器的三种方式

1.直接创建
[[UIViewController alloc] init];
2.通过storyboard创建
UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
// 加载箭头所指向的viewController
ViewController *VC = [storyboard instantiateInitialViewController];
window.rootViewController = VC;
[window makeKeyAndVisible];
self.window = window;

或者

// 通过storyboard创建Storyboard ID属性值为“green”的控制器
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"green"];
3.通过xib创建

步骤:

  1. 创建一个xib文件去描述所要创建的控制器的view。
  2. 设置xib文件中的File's Owner 的 Class为所要创建的控制器的Class。
  3. 在File's Owner上单击右键让view与xib中的view连线。
  4. 最后通过代码加载。
ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

注意:init底层会调用initWithNibName:bundle:

通过xib创建XMGViewController控制器的view的过程:

  1. 判断下nibName有没有值,如果有值,就会去加载nibName指定的xib。
  2. 如果nibName为空,会先去查找有没有XMGView.xib,如果有就去加载。
  3. 如果没有XMGView.xib,就会去加载跟类名同名的xib:XMGViewController.xib。 4.如果还没有找到,就生成一个空的view。