我想将一些数据保存到用户的NSUserDefaults,在UINavigation堆栈中保留表视图。我希望能够仍然使用默认的后退按钮(带有V形符号的按钮),同时仍然有一种可靠的方法来保存数据。我尝试过使用viewDidDisappear
方法,但我不确定这是多么可靠。我担心在应用程序被杀死时可能被调用(或者可能调用该方法的任何其他系统操作)。退出视图控制器的唯一方法是通过后退按钮。我不知道还有什么可以尝试,如果我尝试的是一种可以使用的技术,请告诉我。感谢。
答案 0 :(得分:0)
使用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
}
}
答案 1 :(得分:0)
我们遇到了同样的问题,并最终使用带有操作的自定义导航栏按钮。模拟默认的后退箭头也相当容易。我们决定采用这种方式的原因是因为我们发现我们没有足够的控制权来保存数据,否则,在视图被解除之前,数据可能无法及时保存。此外,在我们的示例中,用户可能不想保存更改,只是想退出视图。使用操作允许我们向用户显示未保存数据的警报,并为他们提供了保存与否的选项。