我是故事板和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从一个视图绘制到另一个视图时,它被配置在某个地方。
答案 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是连接到两个控制器而不是直接连接到按钮。