控制器的创建过程

# 控制器的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. 1 先创建xib 并拖入一个view用来描述控制器的view

控制器的创建过程_第2张图片

- 1.2  创建控制器并连线view


控制器的创建过程_第3张图片

**  注意设置Xib所属控制器类型

**


控制器的创建过程_第4张图片

- 2.创建控制器,同时选择create XIB file 会生成一个和控制器名字相同的xib用来描述控制器,同时内部已经完成view的连线


控制器的创建过程_第5张图片
控制器的创建过程_第6张图片

#通过storyboard加载控制器

- 用到UIStoryboard 初始化方法和它的对象方法


控制器的创建过程_第7张图片

然后可以调用

```objc

[self.window makeKeyAndvisible];

```

让window显示,控制器的view也会显示在window上.

你可能感兴趣的:(控制器的创建过程)