2012-06-08 61 views

回答

4

對於viewControllers:
我會說viewWillAppear:viewDidDisappear:。 原因是,只要您的視圖在「屏幕上」,您就會關注這些通知。 由於您的視圖不在屏幕上時不需要卸載視圖viewDidLoadviewDidUnload是(de)註冊通知的錯誤位置。

用於註冊非意見通知: 在designated initializerdealloc

+0

甚至在init和dealloc函數中,因爲它們對UI本身並沒有真正做任何事情,所以把它們放在init dealloc中會更好 –

4

這取決於。你只想在你的視圖控制器在屏幕上時接收通知(然後viewWillAppear/Disappear可能是一個不錯的選擇),或者當視圖當前不活動時。在後一種情況下,init方法甚至可能比viewDidLoad更適合(或者,視圖當前在內存中的通知是否重要?)。

還要注意的是viewDidUnload不是在所有情況下(僅當視圖被卸載,但視圖控制器保持在內存中調用 - 如果視圖控制器被釋放,而視圖被加載,只有dealloc被稱爲是正確的地方取消註冊

相關問題