2011-09-30 73 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

我通常會在我的實現中首先調用它們。但在大多數情況下,這應該不重要。

相關問題