首页 > 代码库 > 【iOS开发】视图控制器加载和卸载时的几个函数

【iOS开发】视图控制器加载和卸载时的几个函数

1.-(void)loadView

你应该永远不要直接调用这个函数。当视图控制器的view属性被请求但是其值为nil时,该函数将会被调用。该函数加载或创建一个视图并把它分配给view属性。

如果视图控制器有一个与之相关联的nib文件,这个方法将会从nib文件中加载视图。当视图控制器的nibName属性的值不是nil时,就说明视图控制器有一个与之相关联的nib文件。如果你直接用initWithNibName:bundle:函数给视图控制器分配一个nib文件或者如果ios发现再应用程序中有一个以视图控制器的类名为名的nib文件,视图将会通过加载nib文件进行创建。如果视图控制器没有一个与之相关联的nib文件,这个方法将会创建一个空白的UIView对象来代替。

如果你用Interface Builder创建你的视图并用它初始化视图控制器,你一定不要重写这个方法。

为了手动的创建你的视图你可以重写这个方法。如果你选择这样做,把你的视图层次的根视图分配给view属性。你创建的视图应该是独立的视图并且不应该和其他视图控制器对象共享。你对这个方法自定义的实现不应该调用super。

 

2.-(void)viewDidLoad

当视图控制器已经将它的视图层次加载到内存后该方法将被调用。不管视图层次是通过nib文件加载还是再loadView方法中变成实现该方法都会被调用。你一般实现此方法完成对从nib文件加载的视图的额外初始化。

 

3.-(void)viewDidUnLoad

当出现内存较低并且当前视图控制器的视图不需要时,系统会选择性的将那些视图从内存中移除。该方法在视图控制器的视图被release后被调用并且让你做最后的清理作。如果你的视图控制器存储了对视图或者它的子视图的分开引用(If your view controller stores separate references to the view or its subviews)。你应该用这个方法release这些引用。你也可以用这个方法移除任何你创建的用于支持视图但是不在需要的对象的引用。你不应该用这个方法去release用户数据或者任何其他不容易重新创建的信息。

 

4.-(void)viewWillUnLoad

当出现内存较低并且当前视图控制器的视图不需要时,系统会选择性的将那些视图从内存中移除。该方法在视图控制器的视图被release前被调用,这样你在视图被deallocated前做任何清理工作。例如,你可以用这个方法移除视图所接收的通知,并在视图重新加载时重新建立。

【iOS开发】视图控制器加载和卸载时的几个函数