4

如果我有一个名为 B 的 UIViewController。如果我将 UIViewController C 添加为 B 的子视图/子视图控制器。然后我将 D 添加为 B 的子视图控制器。然后我从 B 中删除 D。在这种情况下,应该在之后调用 C 的 viewDidAppear 吗?

我问的原因是因为我没有接到 B 对 viewDidAppear 的调用。我打算在B被解雇时做点什么。

4

3 回答 3

5

viewDidAppear当您关闭模式视图时不会调用。将模态视图视为视图顶部的视图。

于 2012-07-18T04:43:28.717 回答
2

我认为,在添加或删除子视图时不会调用 viewDidAppear 。这背后的原因是,我们将几个对象作为子视图添加/删除到视图中。在这种情况下,viewDidAppear 将被一次又一次地调用,这不是一个好的机制。当您在当前视图上加载一个类对象并将屏幕移动到另一个类的视图然后返回到前一个类时,会调用 viewDidAppear。简而言之,如果您将导航控制器推送到新视图,然后将其弹出到旧视图,则调用 viewDidAppear。

于 2012-07-18T04:59:04.250 回答
2

正如我现在测试的那样viewDidAppear,当视图出现在屏幕上时会调用。甚至1px。即使你被任何其他人覆盖subView并再次发现它,此方法也不会再次调用。

这意味着它只会在subView第一次出现后调用。除非您将其删除并重新添加。在viewdidAppear您删除“D”后,您的“C”问题不再调用。

于 2012-07-18T06:27:11.833 回答