IOS中视图的创建过程是这样的:
先判断存不存在view,如果存在返回一个view不存在则调用loadView的方法。再判断有没存在自定义的方法,就是有没有覆盖loadView的方法,像是[super loadView]。有就调用覆盖方法,没有则判断存不存在storyBoard,有就调用storyBoard,或者nib文件,没有就创建一个empty view,最后调用viewDidLoad这个方法,这时view已经创建了。
最好不要再init方法中做与self.view相关的事,这样会改变loadView的调用顺序会引发一些问题。覆盖loadView方法一定要调用父类loadView的方法或者创建一个视图给视图控制器,否则视图创建是失败的会出现问题可能会引发循环调用