阻止用户返回NavigationController

时间:2016-12-08 05:08:39

标签: ios objective-c uinavigationcontroller

我有一个视图在navigationController中。当用户按下按钮时,我需要检查他在视图中选择的数据。如果是我允许他回去,如果没有,我会显示他做错了允许他留在这个视图中并且不允许返回。我试图在viewWillDisappear中执行此操作但是我的代码没有以正确的方式工作。我如何组织这样的事情?

1 个答案:

答案 0 :(得分:0)

一个选项是实现您自己的自定义后退按钮。将以下代码添加到viewDidLoad方法中:

    self.navigationItem.hidesBackButton = YES;
    UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
    self.navigationItem.leftBarButtonItem = newBackButton;

你的选择器方法是 -

- (void) back:(UIBarButtonItem *)sender {

        if(/*your condition satisfy*/) {
          [self.navigationController popViewControllerAnimated:YES];
        }
        else {
          /** Popup your alert here */
        }

    }