1

我有三個視圖控制器在navigationcontroller被推第三個我所用的語句popToViewController和內存管理

[self.navigationController popToViewController:(Main_View*) mainViewObj animated:YES];

它需要我直接到我指定的控制器先說。我做了一些編碼,從一個NSMutableDictionary在所有視圖控制器刪除viewWillDisappear方法的對象,我使用斷點調試嘗試,但還沒有出現,viewWillDisappear,它需要我直接到Main_View。我應該擔心從字典中刪除對象還是釋放它?

+0

寫 - (空)viewDidDisappear:(BOOL)動畫 – 2013-04-05 12:08:28

+0

我試過,但只有最後一個視圖控制器viewDidDisappear被調用。 – Hassy 2013-04-05 12:12:50

+0

Dude在自動彈出視圖時會釋放您的NSMutableDictionary。 – 2013-04-05 12:14:51

回答

2

viewWillDisappear:方法不呼籲其他視圖控制器,因爲他們已經當你在它們上面推視圖控制器已經消失了。所以基本上,viewWillDisappear:已經在早些時候被調用。再次調用它是沒有意義的,因爲它們一開始並不可見。在

+0

是的,但我做了一個檢查(如果語句),只有當你做popviewcontroller調用時,pushviewcontroller不讓它做我的任務,所以如果不是viewwilldisappear方法那麼爲此目的最適合的方式是什麼? – Hassy 2013-04-06 06:26:23

+0

取決於你實際正在做什麼......從你的問題中不太清楚*爲什麼當你彈出視圖控制器時你需要從字典中刪除一些對象。您是否稍後重用這些視圖控制器?如果不是,你可能想在'dealloc'中做「清理」任務。否則,你可能想考慮繼承'UINavigationController'。 – omz 2013-04-06 07:50:46

0

你可以嘗試在你的AppDelegate中保留對你的NSMutableDictanories的弱引用,然後在mainViewController中的poptoviewcontroller獲取它們,看看它們是否爲零,如果沒有,你可以從你的主目錄中的字典中刪除對象查看與該參考。

+0

做一個可能的解決方案謝謝 – Hassy 2013-04-05 13:13:54