if语句中的performSegueWithIdentifier不起作用

时间:2016-01-01 14:25:23

标签: ios swift if-statement

我已经使用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)
    }
}

2 个答案:

答案 0 :(得分:2)

我说您已将登录按钮中的segue连接到新场景将按钮的操作与您的login(:)操作相关联。这将导致操作被触发(并且跟随true语句的if分支)被解雇的segue。

您可能要做的是将视图控制器中的segue连接(不是登录按钮,始终触发segue)拖动到新场景。然后,这将导致仅触发操作,但也允许您在故事板中具有可以从代码中调用的命名segue。

如果始终希望将其作为控件的动作执行(因为它始终是),则只从动作控件(如按钮)中拖动segues。

答案 1 :(得分:1)

您已将segue与按钮相关联,因此当您按下按钮时,segue与您在UIButton操作中输入的代码无关,以禁用您必须使用下面的代码

<!