在segue之前如何等待函数完成并更新tableview。 iOS Swift

时间:2020-03-17 17:51:31

标签: ios swift segue

我正在制作一个电子商务应用程序。在购物篮视图控制器上,当用户点击“结帐”按钮时,我想检查商品的可用性并相应地更新购物篮,例如在库存不足时,数量将更改为可用库存,或者当没有库存时,将产品从购物篮中取出,然后再定购到另一个视图控制器。问题是,我有一个具有完成处理程序的函数,该处理函数仅应在函数完成且未对购物篮进行任何更改时才调用performSegue,但是,它仍在函数完成之前转到另一个视图控制器。有关如何正确执行此操作的任何建议?

1 个答案:

答案 0 :(得分:0)

我的完成处理程序未正确完成,因此它无法正常工作。但是我终于可以将其与以下代码一起使用

    var changes = Bool()

    func getBasketItems(completion: @escaping(_ success:Bool) -> Void) {

     //each time there's an update to the database I set changes to true

    changes = true
    completion(changes)

    }

我将其用作下面的代码

 self.getBasketItems { (success) in
     if success {
           // there are changes, update basket tableview
           print("there are changes")

        } else {

           self.performSegue(withIdentifier: "goToMap", sender: self)

        }
      }