加载控制器View的方式以及控制器View的生命周期

加载控制器View的方式以及控制器View的生命周期

1.加载控制器的方式

(1)如果创建时通过指定名称加载与控制器相关联的xib文件,则直接加载

UIViewController *vc = [[UIViewController alloc]initWithNibName:”controller” bundle:nil];

(2)如果没有指定加载某个xib文件,则查找与此控制器类名称相同的xib文件加载,假如此控制器叫theViewController,则它就去找名字”theViewController”的xib文件去加载

UIViewController *vc = [[UIViewController alloc]init];
(3)如果没有xib文件中没有叫这个控制器名称的,则去加载去掉这个控制器名称的Controller字眼剩下前缀的xib文件,比如UIViewController,则去加载UIView.xib 文件
(4)如果不通过sb和xib去加载,则系统会去自动调用loadView创建一个空白View ,这个view的颜色被clear了所以看见window的颜色是黑色的
(5)如果你重写了loadView 则 不管你有没有sb和xib文件,都没关系,反正它都忽略了 都会去loadView加载
UIViewController

“`注意:如果你已经重写了loadView:方法,则系统会忽略查找对应名称的相关联的storyboard、xib文件。


#### 2.加载控制器view的生命周期
(1)loadView:
控制器创建时,先调这个方法来加载控制器的View,这个方法时用来自定义或者系统创建控制器的View的。
(2)viewDidLoad:方法
是用来对生成的视图进行一些初始化,并添加一些视图层次,或者根据本地或者网络返回的数据模型进行一些视图层次的初始化。
(3)viewWillAppear:方法
视图将要出现时会调用这个方法,可以进行一些初始化的改变
(4)viewDidAppear:方法
视图已经出现
(5)viewWillDisAppear:方法
视图将要消失
(6)viewDidDisAppear:方法
视图已经消失

![哈哈](https://img-blog.csdn.net/20170614153745769?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWlhb3BmMTIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)


```注意:当视图从屏幕上消失再出现时,如果视图没有因为内存警告而做出一些nil操作,则不会去loadView方法 也不会走viewDidLoad```

(7)viewUnload方法
这个方法就是当因为手机内存不足时,控制器会收到内存警告消息didReceiveMemoryWarning。didReceiveMemoryWarning这个方法的默认实现,就是当viewController的View不在应用程序的视图层级结构中时,就会讲view释放并且调用viewDidUnload方法。而这个方法主要用来释放界面视图的相关资源,讲相关实例设置nil。





<div class="se-preview-section-delimiter"></div>

注意:和dealloc方法不同:dealloc方法是控制器被释放时被调用,而viewDidUnload方法只是View被释放 ,两者并没有关系
“`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值