2011-09-30 70 views
7

UIViewController's documentation,苹果建议呼吁在viewWillAppear中,viewDidAppear,viewWillDisappear,viewDidDisappear等实现的一些点上的超...例如,在viewDidDisappear讨论的是:你什么时候在viewWillAppear,viewDidDisappear等中调用超级方法...?

您可以覆盖此方法执行与关闭 关联或关闭视图的其他任务。如果您重写此方法,则您的 必须在您的实施的某个时间点超级呼叫。

我的问题是它的问题超级方法被调用,如果是这样,什么是正确的时间来调用它呢?超级应该被称为方法的第一行,最后一行还是中间的某个地方,取决于您的特定需求?

回答

7

viewDidAppear先致电super,以便您的电话将被覆盖。

viewWillDisappearviewWillDisappear这似乎是一个折腾,我已经广泛研究,找不到一个决定性的答案,它似乎是50/50。我决定在我的代码中最后拨打super,方法与我们在dealloc中称为super的最后一样相同。

+1

你是怎么想出这些规则的? – JoJo

+0

在viewDidAppear中,很显然,子类dawning应该放在超类的顶部,所以超级先被调用。至于viewWillDisappear,我看到没有什么好的理由,所以我走了我的直觉 - 直到证明错误。 :-)如果你有看法或看到一个很好的理由请发表! – zaph

1

我通常会在我的实现中首先调用它们。但在大多数情况下,这应该不重要。

相关问题