iOS基础-UIKit框架-多控制器管理-控制器创建和控制器view的创建

一、控制器的多种创建方式
如何创建一个控制器


注意:加载UIStoryboard仅仅是加载名称叫做Test的storyboard,并不会创建storyboard中的控制器以及控件

通过xib创建
注意:要想让xib里的view设置为所创建控制器的view,必须设置xib的File's owner为所创建控制器。并且File's owner点右键将view连到xib里的view上。
storyboard默认已经完成了上述操作

二、控制器view的创建方式
1.没有同名xib情况下创建
2.通过storyboard创建
3.有指定xib情况下创建
4. 有同名xib情况下创建
5.有同名去掉controll的情况下创建
6.重写控制器的loadView方法

//第一种方式:没有xib和storyboard情况下创建
(通过alloc init创建控制器,会自动创建一个空白的view作为控制器的view)

//第二种方式:通过storyboard创建
如果通过storyboard创建,会根据storyboard中箭头指向的控制器view所描述的
样子创建控制器的view

//第三种方式:有指定xib的情况下创建(调用initWithNib:方法创建控制器)
如果通过xib创建,会根据xib中控制器view所描述的样子创建控制器的view


//第四种方式:有与控制器同名xib的情况下创建(直接调用init方法创建控制器)
如果有同名xib,会自动找到同名xib中描述的view作为控制器的view

//第五种方式:有与控制器同名(但不含controller)xib的情况下创建(直接调用
init方法创建控制器)
如果有与控制器同名(但不含controller)的xib,会自动找到该xib的view作为控
制器的view

//第六种方式:重写控制器的loadView方法(该方法一般用于自定义控制器view)
什么时候调用LoadView就代表什么时候加载控制器的view
如果重写了控制器的loadView方法,就不会去加载创建同名去掉controller的xib
和同名的xib了,而是创建一个空白的view(什么都不写的话)作为控制器的view,
也可以在loadView中直接创建view

三、控制器view的延迟加载(懒加载)
*控制器的view是延迟加载的:用到时再加载
*可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载
*控制器的view加载完毕就会调用viewDidLoad

原文地址:https://www.cnblogs.com/marshall-yin/p/4727921.html