本帖最后由 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
|