2009-07-29 99 views
1

我有一個viewcontroller,它不能被釋放,因爲它是一個具有額外功能的子類......無論如何,它們中有很多,我需要在離開屏幕時發佈視圖。可能釋放viewcontroller.view而不釋放viewcontroller?

removeFromSuperView消除了視圖,但仍保留在內存中。我可以從內存中刪除視圖的唯一方法是完全釋放它。但是,當我訪問viewcontroller.view時,它只是要再次創建視圖,不是嗎?

,直到他們被吸引首次本身不佔用任何顯著內存的意見,所以...

理想我會的意見我可以[複製]進入viewcontroller.view當陣列它們在屏幕上需要(屏幕上)並完全釋放以釋放,以便Cocoa知道擺脫它分配的任何內部圖形內存。

有什麼想法?
感謝

+0

我不明白,爲什麼你不能釋放視圖控制器,如果它的「具有額外功能的子類」? – Jasarien 2009-07-29 12:45:13

回答

2

要從控制器釋放鑑於

- viewWillAppear:(BOOL)animated 

方法重新創建它,用途:

self.view = nil; 

稍後,在'get'上下文中引用self.view將重新創建視圖(將從NIB重新加載或致電loadView)。

此外,絕不要將dealloc消息顯式發送到您的視圖或任何對象。

0

可以破壞

- viewWillDisappear:(BOOL)animated 

的觀點,並在您的視圖控制器