1、生命周期中的主要方法
视图就是Controller类,每个视图通常会有一个xib文件,老版本的SDK中是nib文件,是视图的UI布局界面,视图的生命周期一样需要分成几个阶段,每个阶段都会回调相关的方法。
1、viewDidLoad方法
这个方法在我们新建一个试图控制器的时候通常都会自动加入到.m文件中,所有对视图的初始化工作都在这里进行。
2、viewWillAppear方法
视图初始化结束后,会执行此方法,意思是说视图初始化工作已经完成了,视图将要显示。
3、viewDidAppear方法
视图显示出来后会调用此方法。
4、viewWillDisappear方法
视图将要退出,如界面切换成其他视图或应用程序退出时会产生视图退出的结果。
5、viewDidDisappear方法
视图不可见时调用。
6、didReceiveMemoryWarning方法
系统内存低时调用此方法,IOS系统在内存不足时会释放后台挂起的APP,也会释放当前APP的其他在后台的视图(应该会先释放其他APP,内存依然很低的情况下才会释放当前app中的资源吧 ,我的猜想= =!),就会调用此视图的这个方法。注意:IOS6之前还会调用viewDidUnload方法。
注意:viewDidLoad方法是视图在首次加载的时候才会调用,一旦加载完成,视图又没有因为内存低被释放掉,就不会再执行了(视图已经在内存中了),而其他方法则会在视图的生命周期内被反复调用。
2、视图生命周期与Application生命周期的关系
视图的生命周期服从于APP的生命周期,APP的生命周期中Not Running——Inactive阶段就是视图的初始化阶段,didFinishLaunchingWithOptions方法就是用来初始化视图的方法,在此期间,视图会执行2个方法:viewDidLoad方法和viewWillAppear方法。然后didFinishLaunchingWithOptions方法结束,进入下一个阶段:Inactive——active,当applicationDidBecomeActive方法执行完毕后,界面显示出来,这时视图会执行其声明周期中的第3个方法:viewDidAppear。释放的过程也是一样的,当APP的状态变为后台时,具体在applicationDidEnterBackground执行完毕后,当前视图会调用自身的4、5方法。
也就是说当APP进行初始化时,视图才进行初始化,执行1、2方法,当APP进行显示时,视图才正式显示出来,然后回调方法3,当APP退出显示时,视图紧随其后完成退出的回调,执行方法4,然后是5。