2012-05-09 53 views
1

狀態我有一個故事板的iOS5應用並使用它時,在初始視圖控制器「A」被按壓的特定按鈕的視圖控制器「B」推到導航堆棧PM。在按下'B'按鈕後,從Web服務中獲取一些數據。的UIViewController不保持在故事板

當用戶點擊後退導航按鈕,然後按下按鈕去返回到「B」,B已經完全復位。我明白這是故事板重新創建ViewController B.如何阻止這種情況發生?我正在尋找正確的設計模式來解決這個問題。

+0

請有人幫忙。 –

回答

3

只是爲了澄清爲什麼發生這種情況。一旦你點擊後退按鈕,viewController'B'就會被推出堆棧並從內存中移除。爲了避免這種情況,您必須在AppDelegate中爲viewController'B'創建一個強大的指針屬性。然後在viewWillAppear中,檢查該屬性是否爲空,以及是否正常設置其值。如果不是,那麼你知道你已經準備好了viewController,而你使用它。

+0

如果我在控制器A中保留一個指向控制器B的指針,該怎麼辦?我不想在App Delegate中集中列出很多控制器。是 – sparkFinder

+0

如果您希望控制器B在整個應用程序中保持其狀態,則擁有該屬性的正確位置位於您的AppDelegate中。您可以按照您在那裏描述的方式進行操作,但如果控制器A被推出堆棧,控制器A和B都將從內存中釋放。 –