拿到控制器后,控制器的view是在什么时候按照什么优先级创建加载的?
1.控制器内部的view是延迟加载
1> 用到时再加载(loadView)
2> 加载完毕后会调用控制器的viewDidLoad方法
也就是说,控制器的view在第一次加载的时候会调用控制器的loadView 方法,需要自定义view的救灾该方法中完成;
如果没有实现loadView方法,那么就会看该控制器是不是通过storyboard创建的,如果是就加载对应storyboard中的view;
如果不是通过加载storyboard创建的,那么就会寻找跟该控制器名字相似的xib,
例如是abcViewController ,那么就先查找abcView.xib,
如果找不到就再找abcViewController.xib,找到就加载对应的view,
还找不到那么就自动创建个背景是黑色的view
注意,loadView方法类似于控制器view属性的get方法(说类似是因为只有在发现view为空的时候才相当于view的get方法),
所以该方法必须先给self.view赋值,不能进来直接就继续使用self.view.xxxx,否则会出现死循环
时间: 2024-12-15 01:33:27