在我的RecordViewController中,在didSelectRowAtIndexPath
内推送一个detailViewController(该继承自UIViewController
):
[[self navigationController] pushViewController:detailViewController animated:YES];
出现DetailViewController后,我可以在左上角看到一个
Back
navigationButton,它会自动弹出当前的视图控制器以返回到先前的ViewController。现在,我需要显示一个
UIAlertView
并询问用户是否应该保存数据。并且只有当用户做出决定时,当前视图控制器才应消失。
我的问题是,如果我将此代码放入
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以获取更多详细信息。