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

Bra*_*bby 3 cocoa-touch ios

当我从一个视图控制器过渡(让我们调用它MasterViewController)到另一个(叫DetailViewController),中了什么样的顺序viewWillDisappear:,viewWillAppear:每个控制器等方法叫什么?

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

Bra*_*bby 7

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

  1. prepareForSegue:
  2. 详情 viewDidLoad
  3. viewWillDisappear:
  4. 详情 viewWillAppear:
  5. 显示新视图(带或不带动画)
  6. 大师viewDidDisappear: (动画结束后)
  7. 详情 viewDidAppear:

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

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

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

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