一个视图控制器的生命周期

当一个视图控制器被创建之后,在屏幕上显示的时候代码的执行顺序:
1、alloc 创建对象,开辟空间;
2、init 初始化对象;
3、loadView 从nib载入视图,通常这一步不需要去干涉,除非没有使用Xib文件创建视图;
4、viewDidLoad 视图载入完成,可以进行自定义数据以及动态创建其他控件;
5、viewWillAppear 视图即将出现,但是还没有被渲染到屏幕上;
6、viewDidAppear 视图已经在屏幕上渲染完成;

当一个视图控制器被移除屏幕并且销毁的时候的执行顺序:
1、viewWillDisappear 视图将被从屏幕上移除之前执行;
2、viewDidDisappear 视图已经从屏幕上移除;
3、dealloc 该视图被销毁


特别说明
loadView 与 viewDidLoad 的区别:当loadView的时候,视图还没有被创建;而ViewDidLoad的时候,视图已经创建完毕。


view的详细加载循环:
1、程序请求viewController的view属性;
2、如果view存在,则直接进行加载。如果不存在,则调用loadView 的方法;


最后:内存不足的警告:
当程序收到内存警告的时候,会调用ViewController的didReceiveMemoryWarning方法,我们需要最想响应,释放程序中暂不需要的资源;通常都会重写该方法,但记得重写的时候需要调用super的该方法;


iOS3.0 - iOS6.0期间,didReceiveMemoryWarning方法会判断当前ViewController的View是否显示在window上,如果没有显示在window上,则didReceiveMemoryWarning会自动将ViewController的View以及其所有的子View全部销毁,然后调用view controller 的ViewDidUnload方法。但是iOS6.0之后,viewDidUnload 方法 与 ViewWillUnload 方法被废弃,收到low-memory时,系统不会释放view,而是仅仅释放controller的resource

你可能感兴趣的:(一个视图控制器的生命周期)