在我的 RecordViewController 中,在 didSelectRowAtIndexPath
中,我推送了一个DetailViewController(继承自 UIViewController
):
[[self navigationController] pushViewController:detailViewController animated:YES];
一旦 DetailViewController 出现,我可以在左上角看到一个 Back
导航按钮,它会自动弹出当前 View Controller 以返回到上一个 ViewController。
现在我需要显示一个 UIAlertView
并询问用户是否应该保存数据。
只有当用户做出决定时,当前 View Controller 才会消失。
我的问题是,如果我将此代码放入 viewWillDisappear
中,那就已经太晚了。显示 UIAlertView
时我无法停止该过程。这需要在用户按下后退按钮时拦截。
是否有一种方法可以重写来实现此目的?
最佳答案
创建一个 UIBarButtonItem:
UIBarButtonItem * backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle: @"Back"
style: UIBarButtonItemStyleDone target: self action: @selector(onBackButtonTapped:)];
将其分配给左栏按钮项目:
self.navigationItem.leftBarButtonItem = backBarButtonItem;
实现 onBackButtonTapped API:
- (void) onBackButtonTapped: (id) sender
{
// Display an UIAlertView
}
您可能想要自定义后退按钮。请查看UIBarButtonItem了解更多详情。
关于ios - 如何覆盖后退导航项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20084521/