一、创建控制器、视图的方式
1、创建控制器的方式
1)通过代码的方式加载viewController
UIViewController *controller = [[UIViewController alloc] init];
2)通过stroyboard来加载viewController
2.1) 加载storyboard中箭头指向的viewController
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; //加载箭头指向的viewController
ZYViewController *controller = [storyboard instantiateInitialViewController];
2.2) 加载storyboard中特定标示的viewController(storyboard可以有多个controller)
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ZYViewController *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控件完成关联
3.1.3)从xib加载viewController
ZYViewController *controller = [[ZYViewController alloc] initWithNibName:@"ZYOneView" bundle:nil];
3.2)bundle中取出xib内容
ZYViewController *vc = [[NSBundle mainBundle] loadNibNamed:@"Two" owner:nil options:nil].lastObject;
2、 创建视图的方式
1.用系统的loadView方法创建控制器的视图
2.如果指定加载某个storyboard文件做控制器的视图,就会加载storyboard里面的描述去创建view
3.如果指定读取某个xib文件做控制器的视图,就根据指定的xib文件去加载创建
4.如果有xib文件名和控制器的类名前缀(也就是去掉controller)的名字一样的 xib文件 就会用这个xib文件来创建控件器的视图 例:控件器的名为 MJViewController xib文件名为 MJView.xib 如果xib文件名后有一个字不一样就不会去根据它去创建如:MJView8.xib
5.找和控制器同名的xib文件去创建
6.如果以上都没有就创建一个空的控制器的视图;