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

Posted 1-434

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了🔥如果页面 A 跳转到 页面 B,A 的viewDidDisappear方法和 B 的viewDidAppear方法哪个先调用?相关的知识,希望对你有一定的参考价值。

如果页面 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方法哪个先调用?的主要内容,如果未能解决你的问题,请参考以下文章

A页面调用了setInterval(),如何在跳转到B页面之前清除掉setInterval??

a标记 跳转到 另一页面特定位置

vue 实现A 页面跳转到B页面 ,B页面返回的A 页面时 ,保留A页面的数据

vue 实现A 页面跳转到B页面 ,B页面返回的A 页面时 ,保留A页面的数据

如何用js添加点击事件,点击后跳转到指定动态页面

JavaScript跳转到指定页面并且到指定的tab切换窗口