iOS - 在其unwind操作方法内使用代码可以中止unwind segue吗?

5
在我的取消返回方法中,我向远程数据库发送数据,并验证信息是否成功存储在数据库中。 我计划让我的验证函数返回0或1,表示成功或失败,并计划将其用作条件。 我想知道是否有一种方法可以在取消返回操作方法中终止取消返回操作?(还是应该在取消返回操作开始之前进行此验证,并以某种方式防止取消返回操作开始?)我已经阅读了ios segue "cancel",但我不知道当他们说要覆盖时他们的意思是什么。
-[UIViewController shouldPerformSegueWithIdentifier:sender:]

方法。我应该创建自己的自定义版本的此方法(见下文),并在取消操作方法中调用它,根据我的条件使其返回否/是?我尝试使用以下方式覆盖该方法:

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
    if (database verification fails) {
        return NO;
    }
    return YES;              
}

我在我的取消操作方法中调用了它,但它没有取消取消操作。

我做错了什么,或者在取消操作方法中有另一种中止取消操作的方法吗?

我是iOS的新手,如果这个问题听起来很傻,请原谅。感谢任何帮助!


2
你的 shouldPerformSegueWithIdentifier 实现似乎没问题,但它应该放在你从中进行 segue 的控制器中,而不是在动作方法中。 - rdelmar
1个回答

2
最好的做法可能是检查你的数据库结果,然后执行segue。你发布的第一部分代码不会被修改太多,但如果你已经制作并使用了你的unwind segue,那么你需要添加到你的代码中检查的唯一内容将类似于这样(假设你的数据库返回"YES"并将其命名为NSString:returnResutl):
if ([returnResult isEqualToString:@"YES"])
{
    [self performSegueWithIdentifier:@"unwindSegueName" sender:self];

}
else
{
    //do whatever here if the value equals anything other than "YES"
}

您的if语句将根据从数据库返回的数据而变化,但您仍将只使用普通的if条件语句。

顺便说一下,发布更多的代码将为您带来更完整的答案。如果您发布了数据库返回数据的样式,那么我可以向您展示如何使用它。


这是关于编程的内容,请将以下文本从英语翻译成中文。请仅返回已翻译的文本,不要进行解释。 - elephant.lyh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接