码迷,mamicode.com
首页 > 移动开发 > 详细

🔥如果页面 A 跳转到 页面 B,A 的viewDidDisappear方法和 B 的viewDidAppear方法哪个先调用?

时间:2020-06-15 12:15:22      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:nslog   pre   --   fun   eww   UNC   hit   调用   nsstring   

如果页面 A 跳转到 页面 B,A 的 viewDidDisappear 方法和 B 的 viewDidAppear 方法哪个先调用?
ViewController 为一级界面,BViewController 和 CViewController为两个二级界面
ViewController 为一级界面,BViewController 和 CViewController为两个二级界面
// 我在两个 VC 里面都写了如下代码:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSLog(@"%@ == %s", NSStringFromClass([self class]), __func__);
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSLog(@"%@ == %s", NSStringFromClass([self class]), __func__);
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
NSLog(@"%@ == %s", NSStringFromClass([self class]), __func__);
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
NSLog(@"%@ == %s", NSStringFromClass([self class]), __func__);
}
注意:这里的跳转有两种情况
1、A push B
2017-10-26 16:38:44.748403+0800 test2[3452:1288708] ViewController == -[ViewController viewWillDisappear:]
2017-10-26 16:38:44.748551+0800 test2[3452:1288708] BViewController == -[BViewController viewWillAppear:]
2017-10-26 16:38:45.304422+0800 test2[3452:1288708] ViewController == -[ViewController viewDidDisappear:]
2017-10-26 16:38:45.304572+0800 test2[3452:1288708] BViewController == -[BViewController viewDidAppear:]
从打印结果先后顺序看:【A-->B-->A-->B】
1、调用 A 的 viewWillDisappear 方法,
2、调用 B 的 viewWillAppear 方法
3、调用 A 的 viewDidDisappear 方法
4、调用 B 的 viewDidDAppear 方法
2、A present C
2017-10-26 16:45:17.957380+0800 test2[3456:1291552] ViewController == -[ViewController viewWillDisappear:]
2017-10-26 16:45:17.957632+0800 test2[3456:1291552] CViewController == -[CViewController viewWillAppear:]
2017-10-26 16:45:18.471787+0800 test2[3456:1291552] CViewController == -[CViewController viewDidAppear:]
2017-10-26 16:45:18.472829+0800 test2[3456:1291552] ViewController == -[ViewController viewDidDisappear:]
从打印结果先后顺序看:【A-->C-->C-->A】
1、调用 A 的 viewWillDisappear 方法,
2、调用 C 的 viewWillAppear 方法
3、调用 C 的 viewDidAppear 方法
4、调用 A 的 viewDidDisappear 方法
所以,如果遇到此面试题,大家注意回答 跳转方式,不同的跳转方式执行顺序会不同!


🔥如果页面 A 跳转到 页面 B,A 的viewDidDisappear方法和 B 的viewDidAppear方法哪个先调用?

标签:nslog   pre   --   fun   eww   UNC   hit   调用   nsstring   

原文地址:https://www.cnblogs.com/1-434/p/13129947.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!