如果条件为真,如何执行segue

时间:2017-10-17 23:05:10

标签: ios objective-c swift

我有两个视图控制器,第一个包含一个按钮,当我按下该按钮时,我希望它检查textField我必须查看它是否包含任何值,如果它没有。我想要一个警告,表示要输入一个值"。如果它包含一个值,我想转移到下一个视图控制器。

override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {

    if identifier == "segue1"{

    if txtField.text?.isEmpty == true{
       //alert "input value"         
        return false;
    }
    else{
        }
        //segue occurs no problem
        return true;

}

我已经尝试了许多其他方法来做到这一点,但似乎没有办法。感谢您的任何信息,谢谢。 (SWIFT新手和Stack Overflow抱歉)

1 个答案:

答案 0 :(得分:3)

您的推理正确。检查以下几点以确保您的代码正常工作:

  1. 您的按钮中的 segue 目标视图控制器
  2. 您的 segue 标识符与代码一样 segue1
  3. isEmpty为空时,您的UITextField有效。
  4. 如果这些是正确的,您需要覆盖shouldPerformSegue(withIdentifier:sender:),但是您可以通过执行以下操作来改进代码并添加警报:

    override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
    
        if identifier == "segue1" {
            if txtField.text?.isEmpty {
                let alertController = UIAlertController(
                    title: "Alert", 
                    message: "Input value", 
                    preferredStyle: .alert
                )
    
                present(alertController, animated: true, completion: nil)
                return false
            }
        }
    
        return true 
    }
    

    有关如何使用UIAlertController的详细信息,请查看Documentation