具有条件故事板的segue过渡

Dej*_*ell 1 iphone xcode objective-c ios 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:@""];   
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Mic*_*lum 6

删除你if和之间的空白行[self perform...]

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

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

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