我在导航堆栈中有一个视图控制器,表示用户可以填写的表单。表单底部有一些文本字段和“应用”按钮。如果用户在输入一些信息后点击导航栏上的本机后退按钮,我希望系统会提示用户输入确认消息:“您的更改尚未保存。您确定要返回吗?”但我不确定我能否“合法地”覆盖原生后退按钮的动作。这可能吗?
答案 0 :(得分:0)
在Objective C中,您可以覆盖ViewController类的navigationShouldPopOnBackButton函数,以向用户显示提示消息
-(BOOL) navigationShouldPopOnBackButton {
// Do your logic
return NO;
}
答案 1 :(得分:-1)
您需要将UINavigationItem
设置为UIViewController
类中的自定义按钮。
之后,您可以在backButtonTouch:
函数中执行自定义代码:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Back", nil)
style:UIBarButtonItemStyleDone
target:self
action:@selector(backButtonTouch:)];