当它只满足swift中的某些要求时如何输入另一个segue?

时间:2015-11-17 01:21:36

标签: ios swift autolayout

例如,我control-drag我的第一个视图控制器上的登录按钮到第二个视图控制器。现在我想要这个结果: 当我点击login时,如果它符合某些要求(例如,如果1+1 != 2,它将进入第二个视图控制器)。否则它将保留在第一个视图控制器上。 这是我的代码的一部分:

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    switch segue.identifier
    {
    case .Some("LoginSegue"):

        // if it satifies some requirement, it will enter anther segue, otherwise it says on the original one
       if (1+1)==2
       {

       }
       else
       {

            let loginViewController = segue.destinationViewController as! RegularLogin

            if let temp_username = usernameText!.text
            {
                loginViewController.username = temp_username
                if let temp_password = passwordText!.text
                {
                    loginViewController.password = temp_password



                }

            }
        }

enter image description here

但是,即使它不符合要求,当我点击login时,它仍会进入第二个视图控制器。如何解决?

1 个答案:

答案 0 :(得分:1)

问题是prepareForSegue是错误的方法;太晚了。要防止此segue触发,请实施shouldPerformSegueWithIdentifier:sender:。这是您检查segue和情况的机会,并返回truefalse以允许或拒绝segue继续前进。