您的位置:首页 > 其它

04-控制器的生命周期方法

2013-12-25 16:05 316 查看
 

源代码下载链接:

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

 

 

https://www.evernote.com/shard/s227/sh/eece6838-bd81-421e-aaa0-9c50aa6b52bc/370bb89d199a6f7453f1e5dc5a14a933
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: