在 swift4 中使用 shouldPerformSegue(withIdentifier, sender) 方法时出错

Errors while using shouldPerformSegue(withIdentifier, sender) method in swift4

我想做什么:

我是如何尝试做到这一点的:

func buttonTapped{

if(condition is true){
   // Perform actions
   // Perform segue as normal
} else{
      shouldPerformSegue(withIdentifier "mySegueIdentifier", sender: self){
      return false
      }
}

}

我收到的错误:

我在苹果文档中搜索了该方法的正确使用方法,但我仍然不确定该怎么做。我们将不胜感激并高度赞赏任何帮助。

如果您想执行逻辑来决定转场是否应该 "performed",您需要 覆盖 shouldPerformSegue。这将允许 OS (1) 正确地开始事情,并且 (2) 让你能够决定 segue 是否完成。

override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
    if [criteria met to perform segue] {
        return true
    } else {
        return false
    }
}

首先,您试图提供一个闭包作为该方法的第三个参数,该方法不接受三个参数,根本不接受闭包作为参数,并且该方法不应该完全被您的代码调用。

其次,实施某种布尔标志“isSegueActive”,根据相关按钮操作中的条件将其设置为“false”或“true”。

第三,在您的视图控制器中覆盖“shouldPerformSegue”并使其return成为“isSegueActive”的值。

这样在执行 segue 时,您的视图控制器将调用“shouldPerformSegue”来了解是否应该执行 segue。