避免多次执行Segue

Avoid performSegue multiple times

提问人:hadoxi 提问时间:3/17/2020 最后编辑:hadoxi 更新时间:3/19/2020 访问量:269

问:

我的应用程序中有超过 20+ 个按钮。对于这些按钮,如果我单击两次,它会执行两次Segue并打开两次视图控制器,在swift iOS的整个应用程序中?

self.performSegue(withIdentifier: "toViewController", sender: nil)
iOS swift iphone 的 iOS7 segue

评论

0赞 iOSDev 3/19/2020
点击该按钮后,立即禁用该按钮。

答:

0赞 Shehata Gamal 3/17/2020 #1

您可以为每个按钮附加一个标签并定义一个 segue 数组

self.performSegue(withIdentifier:segues[sender.tag], sender: nil)

或者干脆将按钮作为 segue 的来源,如果您不愿意覆盖prepareForSegue

评论

0赞 hadoxi 3/19/2020
如果我单击该按钮两次,它会执行两次Segue并打开两次视图控制器
0赞 vadian 3/19/2020 #2
  • 您可以声明一个属性

    var isSegueEnabled = true
    
  • 然后实现该方法来控制是否应执行 segue

    func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
        return isSegueEnabled
    }
    
  • 在 将属性设置为prepare(for seguefalse

    isSegueEnabled = false
    
  • 在关闭显示的视图控制器后的某个时间点,请设置回isSegueEnabledtrue