关于UIViewController生命周期的几个函数:
- (id)init {
NSLog(@"%s", __func__);
if(self = [super init]) {
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor lightGrayColor];
NSLog(@"%s", __func__);
[self hf_addButton];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"%s", __func__);
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"%s", __func__);
}
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
NSLog(@"%s", __func__);
}
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
NSLog(@"%s", __func__);
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSLog(@"%s", __func__);
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"%s", __func__);
}
- (void)dealloc {
NSLog(@"%s", __func__);
}
ViewController - - push 到 - HFLifeStyleViewController
输出如下:
输出:
-[HFLifeStyleViewController init]
-[HFLifeStyleViewController loadView]
-[HFLifeStyleViewController viewDidLoad]
-[ViewController viewWillDisappear:]
-[HFLifeStyleViewController viewWillAppear:]
-[HFLifeStyleViewController viewWillLayoutSubviews]
-[HFLifeStyleViewController viewDidLayoutSubviews]
-[HFLifeStyleViewController viewDidAppear:]
-[ViewController viewDidDisappear:]
注意:若ViewController present 到 HFLifeStyleViewController时
iOS13默认modalPresentationStyle是UIModalPresentationAutomatic。
若HFLifeStyleViewController的modalPresentationStyle不是UIModalPresentationFullScreen样式
HFLifeStyleViewController显示出来时,ViewController没有执行dissppear相关方法。
输出如下:
-[HFLifeStyleViewController init]
-[HFLifeStyleViewController viewDidLoad]
-[HFLifeStyleViewController viewWillAppear:]
-[HFLifeStyleViewController viewWillLayoutSubviews]
-[HFLifeStyleViewController viewDidLayoutSubviews]
-[HFLifeStyleViewController viewWillLayoutSubviews]
-[HFLifeStyleViewController viewDidLayoutSubviews]
-[HFLifeStyleViewController viewDidAppear:]
注意:
viewWillLayoutSubviews、viewDidLayoutSubviews可能会调用多次
当控件布局将要变化、已经变化时 会多次调用。
HFLifeStyleViewController完整的生命周期:
-[ViewController viewWillAppear:]
-[ViewController viewWillLayoutSubviews]
-[ViewController viewDidLayoutSubviews]
-[ViewController viewDidAppear:]
-[HFLifeStyleViewController init]
-[HFLifeStyleViewController viewDidLoad]
-[ViewController viewWillDisappear:]
-[HFLifeStyleViewController viewWillAppear:]
-[HFLifeStyleViewController viewWillLayoutSubviews]
-[HFLifeStyleViewController viewDidLayoutSubviews]
-[HFLifeStyleViewController viewDidAppear:]
-[ViewController viewDidDisappear:]
-[HFLifeStyleViewController viewWillDisappear:]
-[ViewController viewWillAppear:]
-[ViewController viewDidAppear:]
-[HFLifeStyleViewController viewDidDisappear:]
-[HFLifeStyleViewController dealloc]