在我的展开segue的展开操作方法中,我将数据发送到远程数据库,并验证信息是否已成功存储在数据库中。
我计划让我的验证函数返回0或1,表示成功或失败,我打算将其作为条件使用。
我很好奇是否有办法在unwind动作方法中取消unwind segue? (或者我应该在展开segue开始之前进行此验证并防止unwind segue甚至以某种方式开始?)
我已经阅读了ios segue "cancel",但当他们说要覆盖
时,我不知道他们的意思-[UIViewController shouldPerformSegueWithIdentifier:sender:]
方法。我只是制作我自己的这个方法的自定义版本(见下文)并在unwind动作方法中调用它,并根据我的条件使它返回no / yes?我尝试用以下方法覆盖该方法:
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
if (database verification fails) {
return NO;
}
return YES;
}
我在unwind action方法中调用了它,但它没有取消unwind segue。
我做错了什么,还是有另一种方法可以在unwind动作方法中取消unwind segue?
我是iOS的新手,所以如果这个问题听起来很傻,我很抱歉。谢谢你的帮助!
答案 0 :(得分:2)
最好只检查数据库的结果,然后执行segue。你发布的第一段代码不会被修改那么多,但是如果你已经完成了你的unwind segue的制作和工作,那么你要添加到你的代码中的唯一一件事就是这样(就像你说的那样)数据库返回YES,并使其成为名为returnResult的NSString:
if ([returnResult isEqualToString:@"YES"])
{
[self performSegueWithIdentifier:@"unwindSegueName" sender:self];
}
else
{
//do whatever here if the value equals anything other than "YES"
}
您的if语句将根据您从数据库中返回的数据而有所不同,但您仍然只使用普通的if
条件。
仅供参考,发布更多代码将为您提供更完整的答案。如果您发布了数据库中的返回数据,那么我可以向您展示如何使用它。