我已经使用performSegueWithIdentifier为我的IBAction做了一个功能,它完全正常,直到现在它始终显示警报,但它也执行segue到下一个视图。我不知道自己做错了什么。标识符在MainView中是wright。我无法找到任何答案来解决这个问题。
@IBOutlet weak var backgroundImageView: UIImageView!
@IBOutlet weak var logInPassword: UITextField!
@IBAction func registerButton(sender: AnyObject) {
}
@IBAction func login(sender: AnyObject) {
if logInPassword.text!.isEmpty {
let alertNoPasswordLogIn = UIAlertView()
alertNoPasswordLogIn.title = "Passwort fehlt"
alertNoPasswordLogIn.message = "Bitte geben sie ein Passwort ein!"
alertNoPasswordLogIn.addButtonWithTitle("Ok")
alertNoPasswordLogIn.show()
} else {
self.performSegueWithIdentifier("Login", sender: self)
}
}
答案 0 :(得分:2)
我说您已将登录按钮中的segue连接到新场景并将按钮的操作与您的login(:)
操作相关联。这将导致操作被触发(并且跟随true
语句的if
分支)和被解雇的segue。
您可能要做的是将视图控制器中的segue连接(不是登录按钮,始终触发segue)拖动到新场景。然后,这将导致仅触发操作,但也允许您在故事板中具有可以从代码中调用的命名segue。
如果始终希望将其作为控件的动作执行(因为它始终是),则只从动作控件(如按钮)中拖动segues。
答案 1 :(得分:1)
您已将segue与按钮相关联,因此当您按下按钮时,segue与您在UIButton操作中输入的代码无关,以禁用您必须使用下面的代码
<!