Ios 阻止用户返回NavigationController

Ios 阻止用户返回NavigationController,ios,objective-c,uinavigationcontroller,Ios,Objective C,Uinavigationcontroller,我在navigationController中有一个视图。当用户按下后退按钮时,我需要检查他在视图中选择的数据是否正确。如果是,我允许他返回,如果没有,我将显示他犯了错误的通知,并允许他留在该视图中,不允许返回。我尝试在视图中执行此操作将消失,但我的代码无法正常工作。我如何组织这样的事情?一个选项是实现您自己的自定义返回按钮。将以下代码添加到viewDidLoad方法中: self.navigationItem.hidesBackButton = YES; UIBarButton

我在navigationController中有一个视图。当用户按下后退按钮时,我需要检查他在视图中选择的数据是否正确。如果是,我允许他返回,如果没有,我将显示他犯了错误的通知,并允许他留在该视图中,不允许返回。我尝试在视图中执行此操作将消失,但我的代码无法正常工作。我如何组织这样的事情?

一个选项是实现您自己的自定义返回按钮。将以下代码添加到
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 */
        }

    }

一个选项是实现您自己的自定义后退按钮。将以下代码添加到
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 */
        }

    }

如何通过web或本地检查代码中的数据是否正确?是否有自定义的返回按钮?如果是,那么为什么不在BackButton操作中添加逻辑。如何编写返回代码:使用segue或使用popviewcontrollerI我没有自定义的返回按钮。数据是本地的。用户只需选择NSSet单元格,NSSet计数不能超过常量。我没有编写任何返回代码,所有操作都由stroryboard自动完成。在满足条件后,使用segue名称移动。如何通过web或本地检查代码中的数据是否正确?是否有自定义的后退按钮?如果是,那么为什么不在BackButton操作中添加逻辑。如何编写返回代码:使用segue或使用popviewcontrollerI我没有自定义的返回按钮。数据是本地的。用户只需选择NSSet单元格,NSSet计数不能超过常量。我没有编写任何返回代码,stroryboard会自动执行所有操作。在您的条件得到满足后,使用segue名称移动。如果您检查了条件,是否可以根据-(void)back:(UIBarButtonItem*)上的问题修改答案发件人方法他可以检查用户数据并决定是否允许用户返回。如果您修改答案,它将对提问者有用。在您检查条件的地方,您是否可以根据问题修改答案?(void)back:(UIBarButtonItem*)发件人方法他可以检查用户数据并决定是否允许用户返回。如果您修改答案,这将对提问者有用