创建控制器的方式
(1)通过代码的方式加载viewController
UIViewController *controller = [[UIViewController alloc] init];
(2)通过stroyboard来加载viewController
(2.1) 加载storyboard中箭头指向的viewController
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; //加载箭头指向的viewController
CZViewController *controller = [storyboard instantiateInitialViewController];
(2.2) 加载storyboard中特定标示的viewController(storyboard可以有多个controller)
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
CZViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"two"];
(3)通过xib加载viewController
(3.1) 传统方法
(3.1.1)创建Xib,并指定xib的files owner为自定义控制器类(为了能连线关联管理IB的内容)
(3.1.2)xib中要有内容,且xib中描述的控制器类的view属性要与xib的view控件完成关联(关联方法两种,一种是control+files owner拖线到xib中搭建的指定view控件,另一种是指定xib中的view拖线到@interface)
(3.1.3)从xib加载viewController
CZViewController *controller = [[CZViewController alloc] initWithNibName:@"CZOneView" bundle:nil];
(3.2)bundle中取出xib内容 (往Xib中拖控制器,不用采用上面步骤)
CZViewController *vc = [[NSBundle mainBundle] loadNibNamed:@"Two" owner:nil options:nil].lastObject;
创建视图的方式
CZViewController *vc = [[NSBundle mainBundle] loadNibNamed:@"Two" owner:nil options:nil].lastObject;
创建视图的方式
1.用系统的loadView方法创建控制器的视图
2.如果指定加载某个storyboard文件做控制器的视图,就会加载storyboard里面的描述去创建view
3.如果指定读取某个xib文件做控制器的视图,就根据指定的xib文件去加载创建
4.找和控制器同名的xib文件去创建(先同名,后驱动Controller的)
5.如果有xib文件名和控制器的类名前缀(也就是去掉controller)的名字一样的 xib文件 就会用这个xib文件来创建控
件器的视图 例:控件器的名为 MJViewController xib文件名为 MJView.xib 如果xib文件名后有一个字不一样就不会去根据它去创建如:MJView8.xib
6.如果以上都没有就创建一个空(黑色)的控制器的视图;