簡體   English   中英

通過“后退”按鈕返回導航堆棧

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM