如何阻止故事板segue

时间:2015-01-14 17:06:20

标签: ios objective-c storyboard segue

我有两个ViewControllers:FormViewController被绑定到CompleteRegisteringViewController

我的FormViewController包含用户写入用户名,密码,确认密码等的文本字段......以及ConfirmButton 但它有完成注册的条件,例如:如果密码字段文本与确认密码字段文本不同,那么,如果是,则FormViewControllerCompleteRegisteringViewController之间的转换被阻止,并且用户留在FormViewController上修改遇到的错误。

我已经有了组织代码的想法,但问题是如何“阻止”segue?

2 个答案:

答案 0 :(得分:2)

您可以使用shouldPerformSegueWithIdentifier方法:

override func shouldPerformSegueWithIdentifier(identifier: String!, sender: AnyObject!) -> Bool {
    if identifier == "YOUR SEGUE NAME" {
         // TODO: Do your validation here 
         // Return true if the validation pass, otherwise return false
    }
}

答案 1 :(得分:0)

在objective-c中您可以通过在代码中添加以下方法来实现此目的

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender   {
    if([identifier isEqualToString:@"btnSegue"])
    {
        return YES;
    }
    else
    {
        return NO;
    }

}

让我们假设您的segue是btnSegue.And如果您需要根据某些条件执行segue,您可以拥有以下代码

if(check)
{
   [self performSegueWithIdentifier:@"btnSegue" sender:self]; 
}

如果检查是BOOL,您可以根据自己的情况设置为真或假。