我有两个视图控制器,第一个包含一个按钮,当我按下该按钮时,我希望它检查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;

}

我尝试了许多其他方法来执行此操作,但似乎没有任何效果。任何信息表示赞赏,谢谢。 (新功能很快,堆栈溢出很抱歉)

最佳答案

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

  • 从按钮到目标视图控制器,您有一个需求。
  • 如代码中所示,您的segue标识符为 segue1
  • isEmpty为空时,您的UITextField有效。

  • 如果正确,则需要像以前一样覆盖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

    关于ios - 仅在条件为真的情况下如何执行搜寻,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46800495/

    10-11 23:18
    查看更多