Как дождаться окончания функции до 1000 * и обновить представление таблицы перед переходом. iOS Свифт - PullRequest
0 голосов
/ 17 марта 2020

Я делаю приложение для электронной коммерции. На контроллере представления корзины, когда пользователь нажимает кнопку «Оформить заказ», я хотел бы проверить наличие товаров и соответственно обновить корзину, когда, например, не хватает товара, количество будет изменено на доступный запас, или продукт удаляется из корзины, если на складе нет доступных запасов, прежде чем перейти к другому контроллеру представления. Проблема в том, что у меня есть функция, у которой есть обработчик завершения, который должен вызывать executeSegue только после завершения функции и, если нет изменений в корзине, однако, она все еще переходит к другому контроллеру представления до завершения функции , Любой совет, как правильно это сделать?

1 Ответ

0 голосов
/ 17 марта 2020

Мой обработчик завершения не был выполнен правильно, поэтому он не работал. Но я, наконец, заставил его работать со следующим кодом

    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)

        }
      }
...