# 控制器的LoadView方法
- 什么时候调用?
- 第一次使用控制器的view的时候,会加载控制器的view,比如默认的解析Info.Plist文件后创建rootcontroller后,如果使用view 即会加载. 默认是屏幕尺寸.
- 如果LoadView方法里写[super loadView]系统会自动寻找有没有指定,storyboard,如果有就会去加 载storyboard去加载view
- 重写LoadView方法
- 1 !不要调用[super LoadView]
- 2 在loadView方法中,如果没有给控制器的view赋值,就不能获取控制器的view,否则会导致死循环
#View的延迟加载
控制器的view延迟加载:只能用于UIViewController或者他子类
控制器的view是第一次使用的时候才去加载.
所以执行顺序是.
第一次用到控制器的view---->LoadView---->ViewDidLoad--->如果第一次调用时设置了view的相关属性,则再调回到第一步.
# 通过XIB创建控制器
##为什么要通过xib或者storyboard创建控制器?
- 因为xib和sb能描述控制器的view,可以解决他的内容固定问题
- 我们知道在程序进入applicationMain函数后,会创建Application对象,它的代理,并生成一个控制器,并且加载它的view.所以这里 去掉Info.plist中的maininterface来创建控制器.
# 创建控制器
- 1. 1 先创建xib 并拖入一个view用来描述控制器的view
- 1.2 创建控制器并连线view
** 注意设置Xib所属控制器类型
**
- 2.创建控制器,同时选择create XIB file 会生成一个和控制器名字相同的xib用来描述控制器,同时内部已经完成view的连线
#通过storyboard加载控制器
- 用到UIStoryboard 初始化方法和它的对象方法
然后可以调用
```objc
[self.window makeKeyAndvisible];
```
让window显示,控制器的view也会显示在window上.