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

标签 ios swift segue uistoryboardsegue swift4

我正在尝试做的事情:

  • 检查条件,如果条件为真,则执行 segue 普通的。如果条件为假,调用 shouldPerformSegue 方法并 返回 false 以取消 segue。

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

func buttonTapped{

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

}

我收到的错误:

  • 调用中的额外参数。我删除了发件人参数以尝试获取 这行得通,它为我消除了错误,但是 segue 在不该执行的时候仍然执行。

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

最佳答案

如果你想执行逻辑来决定是否应该“执行”segue,你需要覆盖 shouldPerformSegue。这将允许操作系统 (1) 正确启动事情,以及 (2) 让您能够决定转场是否完成。

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

关于ios - 在 swift4 中使用 shouldPerformSegue(withIdentifier, sender) 方法时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47110970/

相关文章:

iphone - 使用 outlets 子类化主视图 Controller

ios - uniqueIdentifier 与 indentifierForVendor 和 Apple 拒绝

xcode - Facebook SDK 4.0.1 Swift 错误 xcode 6.2 iOS 8.2

ios - Swift segue 不工作?

objective-c - 从 TableViewController 到 NavController 中嵌入的第二个 TVC 的 performSegueWithIdentifier 不起作用

ios - 具有不同 ViewController 的 UIPageViewController

iphone - 加载 View 后隐藏状态栏留下黑条

iphone - NSInvalidArgumentException ||发送到实例的无法识别的选择器

ios - 当调用未连接但调用套件ui在后台运行时如何关闭调用套件

swift - Cocoa Swift 中的自定义类 Unarchive 为零