繁体   English   中英

从一个视图控制器转换到另一个视图控制器时,视图方法的调用顺序是什么?

[英]In what order are view methods called when transitioning from one view controller to another?

当我从一个视图控制器(让我们称之为MasterViewController )转换到另一个视图控制器(称为DetailViewController )时,每个控制器上的viewWillDisappear:viewWillAppear:等方法的调用顺序是什么?

我怀疑当我的主视图消失时调用的一些清理代码会干扰我的详细视图中的初始化代码。 我查看了Apple的文档,但找不到任何涉及多个视图控制器的信息。

我创建了一个简单的基于UINavigationController的项目,并添加了一些NSLog语句来找出它们被调用的顺序。

  1. 掌握prepareForSegue:
  2. 详细viewDidLoad
  3. Master viewWillDisappear:
  4. 详细信息viewWillAppear:
  5. 显示新视图(带或不带动画)
  6. Master viewDidDisappear: 动画结束后)
  7. 详细信息viewDidAppear:

但是,使用UITabViewController在视图之间切换时,顺序是不同的:

  1. SecondTab viewDidLoad
  2. SecondTab viewWillAppear:
  3. FirstTab viewWillDisappear:
  4. 将显示新视图。
  5. FirstTab viewDidDisappear:
  6. SecondTab viewDidAppear:

因此,您似乎无法始终依赖于以相同顺序发生的这些事件 - 它可能会根据您正在转换的视图控制器的性质而有所不同。

我在这里错过了什么重点吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM