仅在发生某些事情时才执行 segue

Perform a segue only if something happens

如何仅在条件发生时执行 segue?

我尝试过的:

相同的代码在 macOS 中运行良好(仅将 textField1.text 更改为 textField1.stringValue)。在 iOS 它不起作用。也就是说,当 textField1 为空时,它仍然会进行转场。

如何只在Text Field有内容时才转场?

answer 解释了您的逻辑。

您可以做的是,在执行 segue 之前检查按钮函数中是否填充了文本字段。

简单的解决方案,最好在调用 performSegue

之前直接检查条件
@IBAction func goTo2(_ sender: UIButton) {
    guard !textField1.text!.isEmpty else { return }
    performSegue(withIdentifier: "segueTo2", sender: self)
}

delegate 方法实际上只针对hard-connected segues,所以你可以删除它

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

    let str: String? = textField1.text
    if str!.isEmpty {
          print ("text field is empty. Do not do the segue")
         return false
     }
     else {
         return true
     }
}