如官方文档中的图
注意:> 如果没有指定nibName,也没有重写loadview方法,且控制器的类名以Controller结尾;就会执行一下操作:
1.判断下有没有指定NIBname,如果指定了,就会去加载指定的XIB;
2. 判断下有没有跟控制器类名同名的的xib,但是后缀不带Controllerde Controller的xib,有就去加载;
3. 如果没有指定,就会判断下有没有跟控制器类名同名的XIB,有就去加载
4. 如果没有任何xib描述控制器的view,就不会加载xib;
加载控制器的View
- 判断有没有指定的nibName,如果指定了,就去加载指定的;
- 判断有没有view.xib,
- 判断有没有viewController.xib
- 直接创建一个空的xib
控制器默认空的view
- 控制器默认的view是不完全透明黑色的(及控制的颜色是:UIColor clearColor);
- view的alpha有个临界值:当
小于0.01
时候默认完全透明(即:父view可以获取焦点事件);
控制器view的延时加载(懒加载);
一般的系统自带的控制器的View都是懒加载的;因此,自定义view时,其中的控制器最好也延时加载
;
注意:创建控制器不一定会创建控制器的view
- 控制器的view在使用的时候 才会加载,在第一次使用的时候创建;
- 控制器的view按-(UIView*)view —>如果view为空—>viewload—>viewDidLoad;
注意:(UIView*)view:这个方法是不能使用的,即:_view是受保护的,只能在某个框架内使用(UIkit);