2010-01-14 99 views
1

我有一個UIView被動態創建並添加爲子視圖,而不是在界面構建器中。問題是子視圖最終消失,屏幕上剩下的所有內容都是正在加載的xib中定義的對象。動態添加的子視圖消失

它似乎發生一旦子視圖的retainCount從3下降到2.我對iPhone開發相當新,並沒有完全理解內存管理的複雜性,所以我可能會漏掉一些明顯的東西。任何人都可以闡明我的問題可能是什麼?任何幫助將不勝感激。謝謝。

回答

1

這只是一個瘋狂的猜測,但低內存警告可能會導致視圖從內存中清除,並且當它被重新加載時,視圖不再存在,因爲如果發生這種情況,viewDidLoad中沒有任何重新顯示它。您可能需要將視圖存儲在ivar中,然後讓viewDidLoad將其添加(如果存在)。

您可以通過在模擬器中運行來測試該理論,然後使其生成低內存警告以查看是否使視圖消失。我不認爲這應該發生,如果視圖當前顯示雖然這樣確保其他視圖顯示在當時。

+0

謝謝,我會試試看。當另一個視圖控制器從導航堆棧彈出後重新顯示視圖時發生。 – angelo 2010-01-14 18:02:42

+0

謝謝!我已確認收到低存儲器警告消息時發生了這種情況。 – angelo 2010-01-14 18:19:42

+0

謝謝!它爲我們工作。解決方法是:在父視圖的控制器的viewDidLoad事件上添加子視圖。 – 2012-01-26 15:08:34