此問題之前已被詢問過,但我能找到的回答來自2009年,並不適合我的問題。讓我重申這個問題。在iOS4中彈出視圖控制器時會收到通知
我有一個UINavigationController
,它會產生並推動很多不同的UIViewController
到它的堆棧上。其中一項交易涉及一些核心數據操作,當某個特定VC獲得從堆棧中彈出時需要保存。不要關注核心數據部分,而是關於彈出窗口。
我該如何掛鉤UIViewController
將從堆棧中彈出?
- 我希望有某種委託方法,但找不到它。
UINavigationControllerDelegate
協議非常稀疏。 - 然後我開始使用
viewWillDisappear
的思維,但一個是如果另一種觀點則被推到的堆棧也叫,所以它並沒有提供恰當的時機。 - This answered question, from 2009,選擇查看我們'彈出'的視圖控制器的
viewWillAppear
,但由於該調用沒有引用需要執行檢查的VC,因此這是不令人滿意的,並且會引入一個反生產的依賴程度(VC被多個NC使用)。 - Another answered question, also from 2009,選擇子類UINavigationController並重寫popViewControllerAnimated:方法。或者使用VC的dealloc。我的直覺告訴我,不可能走的路。
- 終於有one last recent question from march 2011,但沒有人關心它回答。
這給我留下了我目前不滿意的狀態。有沒有人有更好的解決方案來找到你的UIViewController從UINavigationController的棧中彈出的那一刻?
乾杯,
EP。
我面臨同樣的問題。但是,我可以根據http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixAprerecatedAPI.html添加一些信息,viewDidUnload&viewWillUnload在iOS6下已棄用 –