控制器View的生命周期

这个好像是个面试题吧

Snip20170106_4.png

顺序是这样的:viewDidLoad(控制器的View加载完)—》viewWillAppera(控制器的View即将显示)—》viewVillLayoutSubViews(控制器的View将要摆放子控件)—》viewDidLayoutSubViews(控制器的View摆放子控件完成)—》viewDidApper(控制器的View显示完成)—》viewWillDisappear(控制器的View即将消失)—》viewDidDisapper(控制器的View已经消失)

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

// 控制器的View加载完时候调用(我们一般在这添加子控件)
- (void)viewDidLoad {
    [super viewDidLoad];
}

//控制器的View将要显示时候调用
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

// 将要布局控制器的View里面的子控件的时候调用
- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];
}

//布局控制器的View里面的子控件完成的时候调用
- (void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
}

//控制器的View显示完成时候调用
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}

//控制器的View将要消失时候调用
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
}

//控制器的View完全消失时候调用
- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
}

@end

注意上面是ARC模式 MRC模式下还有几个方法哦

//在 ARC当中. 当前控制器的View即将被销毁的时候会调
-(void)viewWillUnload
{
    [super viewWillUnload];
}
//当前控制器的View被销毁的时候会调
-(void)viewDidUnload
{
    [super viewDidUnload];
}

其实也是按照ARC模式的,只是后面多了几步—>接到内存警告—>viewWillUnload—>释放View—>viewDidUnload

应用程序的启动原理

1:首先去到main文件加载main函数  执行UIApplicationMain函数 创建UIApplication对象,并设置代理
2:开启一个主运行循环(防止程序中途打断退出)
3:加载info.plist(判断这个字典中是否有Main storyboard file base name:main)在这个键值对,如果存在,那么就去加载Main.storyboard文件,加载箭头所转指的控制器
4.在加载控制器时候会先创建窗口,并把控制器的View放到窗口上面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容