1

我是故事板和 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 从一个视图绘制到另一个视图时,它是在某个地方配置的。

4

1 回答 1

6

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

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

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

如果这不能解决问题,请务必确认 segue 已连接到两个控制器而不是直接连接到按钮。

于 2012-08-29T13:59:32.657 回答