具有条件故事板的segue过渡

时间:2012-08-29 13:54:41

标签: iphone objective-c ios xcode uistoryboard

我是故事板和xcode的新手(使用4.4)

我想实现一个登录条件,如果完成了 - segue就可以了。否则,用户应保持相同的视图。

我创建了2个UIView:ViewController和Bar Controller。

我还从ViewController到Bar Controller创建了一个segue,并将其标识符设置为loginSegue作为模态。

在LoginViewController.m中,我添加了以下内容:

- (IBAction)login:(id)sender {
    self.email = self.emailText.text;
    self.password = self.passwordText.text;
   if ([self.email isEqualToString:@"O"] && [self.password isEqualToString:@"O"])
       [self performSegueWithIdentifier:@"LoginSegue" sender:sender];
    else
        [passwordText setText:@""];   
}

当我调试代码时 - 我发现如果电子邮件和密码不等于O,则if跳到else,但是segue(转换到新视图)仍然会发生。

如何阻止用户转移到新视图?

顺便说一句,如果我删除if else条件 - 用户将被自动转移到下一个视图。在我看来,当我将segue从一个视图绘制到另一个视图时,它被配置在某个地方。

1 个答案:

答案 0 :(得分:6)

删除if[self perform...]

之间的空白行

此外,您可能需要考虑将if-else语句保留在大括号中以防止此问题再次发生:

if ([self.email isEqualToString:@"O"] && [self.password isEqualToString:@"O"]){
    [self performSegueWithIdentifier:@"LoginSegue" sender:sender];
}else{
    [passwordText setText:@""];
}

如果这不能解决问题,那么一定要确定segue是连接到两个控制器而不是直接连接到按钮。