A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 FFFF001 于 2016-7-7 22:14 编辑

#if 0
个人总结,如有错误,望请指正

iOS开发之 : 视图显示到屏幕加载过程(UIViewController)
#if 0

" UIViewController method

"    1 * method
"    2 * 加载显示过程
"    3 * 代码解析

"1. method

// - (void)loadView;
// - (void)viewDidLoad;
// - (void)viewWillAppear:(BOOL)animated;
// - (void)viewDidAppear:(BOOL)animated;
// - (void)viewWillDisappear:(BOOL)animated;
// - (void)viewDidDisappear:(BOOL)animated;
// - (void)viewDidUnload;

"2. 显示加载过程
"        *   加载过程
"        *   图释

"*   视图显示加载过程
* 当'视图控制器'控制视图(View)将要显示在屏幕上时..
*   1. 首先:会判断View是否存在(第一次加载时,View是不存在的)
*   2. 如果不存在,系统调用 loadView 方法...
*   3. 如果有 xib/nib 文件,可以直接把这个 xib 文件作为 View 的内容
*   4. 如果没有 xib,那么 loadView 就会创建一个空白的视图
*   5. 接下来就会调用 viewDidLoad 函数(调用这个函数的时候 View 已经存在了)
*   6. 然后视图将要显示就会调用 viewWillAppear 接着调用 viewDidAppear...
"*   图释

//      控制器(当视图要显示时)
//      | 1.判断是否存在 View
//      V (第一次加载时 View 是不存在的)
//      ---------------------------
//      | 存                       | 2.不存在
//      | 在                       V   调用
//      |                      loadView
//      |                          |
//      |                          V 3.xib\nib
//      |                   ------------------
//      |                   |                |
//      |                   V 有         没有 V
//      |   4.xib文件作为View的content  loadView create new View
//      |                   ------------------
//      |                            |
//      |                            V 调用
//      |                     5.ViewDidLoad (调用这个函数的时候View已经存在了)
//      |                            |
//      |                            V
//      ------------------->  6.ViewWillAppear
//                                   |
//                                   V
//                              ViewDidAppear

"3. 代码解析
#endif
- (void)loadView
{
    //   默认只会调用一次(用来初始化xib文件中的控件\createNewView)
    //   但是....内存警告后,会调用viewDidUnload,彻底销毁界面..
    //   所以....如果再次进入界面时,会重新执行此方法和viewDidLoad方法..
   
    [super loadView];
    // 注意:重写父类的生命周期函数,必须调用父类的方法
    NSLog(@"加载xib||createNewView..loadView..");
}

- (void)viewDidLoad
{
    //    默认只执行一次(内存警告例外)
    //    调用这个函数的时候 View 已经存在了..
    //    这个方法可以进一步的初始化界面,自己的代码一般都写在此方法中.
    [super viewDidLoad];
    NSLog(@"进一步初始化界面..viewDidLoad..");
    [self layoutUI];
}

- (void)viewWillAppear:(BOOL)animated
{
    //    View将要显示时调用(还未显示出来)
    [super viewWillAppear:animated];
    NSLog(@"将要显示视图..viewWillAppear");
}

- (void)viewDidAppear:(BOOL)animated
{
    //    View显示
    [super viewDidAppear:animated];
    NSLog(@"显示视图..viewDidAppear..");
}

- (void)viewWillDisappear:(BOOL)animated
{
    //    View将要disappear
    [super viewWillDisappear:animated];
    NSLog(@"将要不见..viewWillDisappear..");
}

- (void)viewDidDisappear:(BOOL)animated
{
    //    View Disappear
    [super viewDidDisappear:animated];
    NSLog(@"不见..viewDidDisappear..");
}

//    当界面不在显示(Disappear)时,如果内存警告了则会调用此方法,彻底销毁界面(如果调用了此方法,界面会被销毁,则再次进入本界面时重新执行 loadView 和 viewDidLoad 方法.
// ***   注意:方法由系统调用不可控
// ***   - (voi)viewDidUnload;

#enif

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马