- 源代码下载链接:
04-控制器的生命周期方法.zip
32.3 KB -
// MJViewController.h
Map - //
- // MJViewController.h
- // 04-控制器的生命周期方法
- //
- // Created by apple on 13-12-10.
- // Copyright (c) 2013年itcast. All rights reserved.
- //
- #import<UIKit/UIKit.h>
- @interfaceMJViewController : UIViewController
- @end
-
// MJViewController.m
Map - //
- // MJViewController.m
- // 04-控制器的生命周期方法
- //
- // Created by apple on 13-12-10.
- // Copyright (c) 2013年itcast. All rights reserved.
- //
- #import"MJViewController.h"
- @interfaceMJViewController ()
- @end
- @implementationMJViewController
- #pragma mark控制器的view加载完毕就会调用一次
- - (void)viewDidLoad
- {
- [superviewDidLoad];
- NSLog(@"MJViewController------viewDidLoad");
- }
- #pragma mark控制器的view显示完毕的时候调用
- - (void)viewDidAppear:(BOOL)animated
- {
- [superviewDidAppear:animated];
- NSLog(@"MJViewController-------viewDidAppear");
- }
- #pragma mark控制器的view即将显示的时候调用
- - (void)viewWillAppear:(BOOL)animated
- {
- [superviewWillAppear:animated];
- NSLog(@"MJViewController-------viewWillAppear");
- }
- #pragma mark当控制器的view从父控件中移除的时候,才又可能会执行下面的方法
- #pragma mark控制器的view消失完毕的时候调用
- - (void)viewDidDisappear:(BOOL)animated
- {
- [superviewDidDisappear:animated];
- NSLog(@"MJViewController-------viewDidDisappear");
- }
- #pragma mark控制器的view即将消失的时候调用
- - (void)viewWillDisappear:(BOOL)animated
- {
- [superviewWillDisappear:animated];
- //本文永久链接,转载请注明出处:http://www.cnblogs.com/ChenYilong/p/3490869.html
- NSLog(@"MJViewController-------viewWillDisappear");
- }
- #pragma mark接收到内存警告就会调用
- - (void)didReceiveMemoryWarning
- {
- [superdidReceiveMemoryWarning];
- /*
- didReceiveMemoryWarning方法内部的实现
- 1>首先会检测控制器的view有没有父控件
- if (self.view.superview == nil) {
- //销毁控制器的view
- //控制器的view销毁完毕,就会调用控制器的viewDidUnload方法
- } else {
- //不销毁
- }
- */
- //内存清除操作(比如释放界面上依赖的模型数据)
- }
- /*
- 1.当控制器接收到内存警告时,会调用didReceiveMemoryWarning方法
- 2.didReceiveMemoryWarning方法内部的默认实现
- 1>首先会检测控制器的view有没有父控件
- if (self.view.superview == nil) { //检测控制器的view在不在屏幕上
- //就会尝试销毁控制器的view
- //即将销毁的时候,就会调用控制器的viewWillUnload
- //销毁完毕的时候,就会调用控制器的viewDidUnload方法
- } else {
- //不销毁
- }
- 3.当需要再次使用控制器的view时,又会调用loadView方法来创建view
- 4.接着会调用一系列的生命周期方法
- viewDidLoad ---> ......
- 5.生命周期循环
- loadView --> viewDidLoad --> ..可见.. --内存警告--> didReceiveMemoryWarning ---> viewWillUnload --> viewDidUnload ---再次使用---> loadView
- */
- @end