0

我有一個列表控制器,它激發一個performSegueWithIdentifier加載一個被選中項目的detailViewController。要初始化detailViewController,我在prepareForSegue上設置一個屬性,在顯示detailView之前調用它。這一切都很好。popViewController到一個用UIStoryboardSegue初始化的UIViewController

但是...
從我瀏覽到一個控制器,做一些內存密集型的動作和我detailViewController最終被卸下,viewDidUnload被調用的詳細視圖。

現在用戶按下標題欄中的後退按鈕,導致啓動popViewController。當detailViewController的我的viewDidLoad方法再次執行時,我沒有機會在顯示它之前設置適當的屬性。所以在這一點上我的控件都沒有顯示適當/任何信息。

什麼是最好的方式來重新初始化我的detailViewController屬性,一旦它已被釋放和用戶導航回它?我曾想過在我的AppDelegate上設置「selectedItem」以便在這種情況下使用,但這似乎是一種黑客行爲。

在此先感謝!

+0

viewDidUnload正在調用要釋放的視圖,而不是視圖控制器。只要VC還在那裏,你就不應該失去你的財產。你是否發佈了自己的VC? – 2012-07-31 09:07:41

+0

難道就這麼簡單嗎?今晚我得仔細檢查一下,但我認爲dealloc正在被我的VC調用。 – Wolfsokta 2012-08-01 23:36:26

+0

就是這樣,謝謝戈登。 – Wolfsokta 2012-08-04 05:24:02

回答

0

我誤解了viewDidUnload的場景,並釋放了實際需要的項目以便重建視圖。再次感謝戈登。

相關問題