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


    1. 源代码下载链接:04-控制器的生命周期方法.zip
      32.3 KB
    2. // MJViewController.h

      Map
    3. //
    4. //  MJViewController.h
    5. //  04-控制器的生命周期方法
    6. //
    7. //  Created by apple on 13-12-10.
    8. //  Copyright (c) 2013itcast. All rights reserved.
    9. //

    10. #import<UIKit/UIKit.h>

    11. @interfaceMJViewController : UIViewController

    12. @end
    13. // MJViewController.m

      Map
    14. //
    15. //  MJViewController.m
    16. //  04-控制器的生命周期方法
    17. //
    18. //  Created by apple on 13-12-10.
    19. //  Copyright (c) 2013itcast. All rights reserved.
    20. //

    21. #import"MJViewController.h"

    22. @interfaceMJViewController ()

    23. @end

    24. @implementationMJViewController

    25. #pragma mark控制器的view加载完毕就会调用一次
    26. - (void)viewDidLoad
    27. {
    28.     [superviewDidLoad];
    29.    
    30.     NSLog(@"MJViewController------viewDidLoad");
    31. }

    32. #pragma mark控制器的view显示完毕的时候调用
    33. - (void)viewDidAppear:(BOOL)animated
    34. {
    35.     [superviewDidAppear:animated];
    36.    
    37.     NSLog(@"MJViewController-------viewDidAppear");
    38. }
    39. #pragma mark控制器的view即将显示的时候调用
    40. - (void)viewWillAppear:(BOOL)animated
    41. {
    42.     [superviewWillAppear:animated];
    43.    
    44.     NSLog(@"MJViewController-------viewWillAppear");
    45. }

    46. #pragma mark当控制器的view从父控件中移除的时候,才又可能会执行下面的方法

    47. #pragma mark控制器的view消失完毕的时候调用
    48. - (void)viewDidDisappear:(BOOL)animated
    49. {
    50.     [superviewDidDisappear:animated];
    51.    
    52.     NSLog(@"MJViewController-------viewDidDisappear");
    53. }

    54. #pragma mark控制器的view即将消失的时候调用
    55. - (void)viewWillDisappear:(BOOL)animated
    56. {
    57.     [superviewWillDisappear:animated];
    58.    //本文永久链接,转载请注明出处:http://www.cnblogs.com/ChenYilong/p/3490869.html
    59.     NSLog(@"MJViewController-------viewWillDisappear");
    60. }

    61. #pragma mark接收到内存警告就会调用
    62. - (void)didReceiveMemoryWarning
    63. {
    64.     [superdidReceiveMemoryWarning];
    65.    
    66.    /*
    67.      didReceiveMemoryWarning方法内部的实现
    68.      1>首先会检测控制器的view有没有父控件
    69.      if (self.view.superview == nil) {
    70.         //销毁控制器的view
    71.         //控制器的view销毁完毕,就会调用控制器的viewDidUnload方法
    72.      } else {
    73.         //不销毁
    74.      }
    75.      */
    76.    
    77.    
    78.    //内存清除操作(比如释放界面上依赖的模型数据)
    79. }

    80. /*
    81.  1.当控制器接收到内存警告时,会调用didReceiveMemoryWarning方法
    82.  
    83.  2.didReceiveMemoryWarning方法内部的默认实现
    84.  1>首先会检测控制器的view有没有父控件
    85.  if (self.view.superview == nil) { //检测控制器的view在不在屏幕上
    86.      //就会尝试销毁控制器的view
    87.     //即将销毁的时候,就会调用控制器的viewWillUnload
    88.     //销毁完毕的时候,就会调用控制器的viewDidUnload方法
    89.  } else {
    90.      //不销毁
    91.  }
    92.  
    93.  
    94.  3.当需要再次使用控制器的view时,又会调用loadView方法来创建view
    95.  
    96.  4.接着会调用一系列的生命周期方法
    97.  viewDidLoad ---> ......
    98.  
    99.  
    100.  5.生命周期循环
    101.  loadView --> viewDidLoad --> ..可见.. --内存警告--> didReceiveMemoryWarning ---> viewWillUnload --> viewDidUnload ---再次使用---> loadView
    102.  
    103.  */

    104. @end

    https://www.evernote.com/shard/s227/sh/eece6838-bd81-421e-aaa0-9c50aa6b52bc/370bb89d199a6f7453f1e5dc5a14a933


    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Java Object类
    Java StringBuffer类
    Java String 类
    vuex的使用总结
    vue 周期函数
    vue-cli keep-alive用法以及activated,deactivated
    vue-cli 跳转方式
    vue-cli watch/timer
    vue-cli 使用better-scroll
    vue-cli less使用
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3490869.html
Copyright © 2020-2023  润新知