UINavigationController - 覆盖后退按钮操作

时间:2015-11-09 23:00:03

标签: ios uinavigationcontroller uinavigationbar

我在导航堆栈中有一个视图控制器,表示用户可以填写的表单。表单底部有一些文本字段和“应用”按钮。如果用户在输入一些信息后点击导航栏上的本机后退按钮,我希望系统会提示用户输入确认消息:“您的更改尚未保存。您确定要返回吗?”但我不确定我能否“合法地”覆盖原生后退按钮的动作。这可能吗?

2 个答案:

答案 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:)];