loadView,viewDidLoad等几种方法的调用总结

viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用viewDidLoad用于初始化,加载时用到的。 
loadView 此方法在控制器的view为nil的时候被调用。虽然经常说loadView是使用代码生成视图的时候,当视图第一次载入的时候调用的方法。用于使用(写)代码来实现控件。 用于使用代码生成控件的函数。但是经过自己实际断点单步操作发现,不管用不用nib,都最先调用loadView,所以说loadView 此方法在控制器的view为nil的时候就会被调用。一般在使用nib后就会把loadView注释掉。Xcode4.2创建的时候就给注释好了。

当手写代码时一定注意分配UIView.自己经常用的有两种方法,如下:

复制代码
- ( void ) loadView { 
UIView *view = [ [ UIView alloc] initWithFrame:[ UIScreen
mainScreen] .applicationFrame] ;
self.view = view;
[ view release] ;
}

- ( void ) loadView {
[super loadView];
}
复制代码

但是第二种方法[super loadView]方法不被提倡,也不是苹果所希望的,就自己的几个小项目来看,就有一次使用第二种方法崩了,第一种就可以,所以还是方法一比较保险。就是你的loadView中应该有self.view = …这样的行为。

viewDidUnload方法‍
当系统内存吃紧的时候会调用该方法,一般在这个类中添加的代码是赋空代码,网上的解释是这样的:

在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等 release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)

一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行

viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象

viewWillAppear:方法更新准备显示的视图的信息。调用时,视图可能还没有被加载。
使用viewDidAppear:来触发视图完全显示在屏幕上之后的行为,例如任何动画。

这两个方法是每当切换到view时就调用。

原文地址:https://www.cnblogs.com/mawenqiangios/p/5007491.html