没有xib和storyboard
// 通过[alloc init]创建,会自动创建一个空白的view作为控制器的view
XViewController *vc = [[XViewController alloc] init];
通过storyboard创建
// 会根据storyboard中箭头指向的控制器view的描述创建控制器的view
// 如果重写了控制器的loadview方法,就会创建一个空白的view作为控制器的view,而不会使用storyboard中的view作为控制器的view
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil];
XViewController *vc = [storyboard instantiateInitialViewController];
有指定xib情况下创建
// 会根据xib中的描述创建控制器的view
XViewController *vc = [XViewController alloc] initWithNibName:@"xxx" bundle:nil];
有同名xib的情况
// 会自动找到同名xib中描述的view
XViewController *vc = [XViewController alloc] init];
有同名去掉Controller的情况
// 会自动找到该xib的view作为控制器的view
XViewController *vc = [XViewController alloc] init];
重写控制器的loadview方法
// 如果重写了控制器的loadview方法,就不会去加载同名去掉controller的xib和同名xib,而是创建一个空白的view作为控制器的view
XViewController *vc = [XViewController alloc] init];