[英]Going back in the Navigation Stack via the “Back” Button
我想在UINavigation堆棧中保留表視圖的用戶上將一些數據保存到NSUserDefaults。 我希望仍然可以使用默認的后退按鈕(人字形按鈕),同時仍具有可靠的方式來保存數據。 我已經嘗試過使用viewDidDisappear
方法,但是我不確定這是多么可靠。 我擔心應用程序被殺死(或可能調用該方法的任何其他系統操作)時可能會調用它。 退出視圖控制器的唯一方法是通過“后退”按鈕。 我不確定還有什么可以嘗試的,如果我嘗試過的是可以使用的技術,請告訴我。 謝謝。
也許使用UINavigationControllerDelegate會對此有所幫助,因此您將意識到彈出並推入導航控制器。
self.navigationController.delegate = self;
然后在push或pop中調用此委托函數,您可以檢查將要顯示的視圖控制器。
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (viewController.class == [YourPreviousViewController class]) {
//back clicked, poping
}
}
我們遇到了同樣的問題,最終使用了帶有操作的自定義導航欄按鈕。 模仿默認的后退箭頭也相當容易。 之所以決定采用這種方式,是因為我們發現我們對數據的保存沒有足夠的控制權,否則,數據可能無法在關閉視圖之前及時保存。 同樣,在我們的情況下,用戶可能不想保存更改,而只是想退出視圖。 通過執行操作,我們可以向用戶發出警報,通知您數據尚未保存,並為他們提供了保存或不保存的選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.