Анимация контроллера навигации по умолчанию не работает в блоке успеха API SWIFT - PullRequest
0 голосов
/ 18 февраля 2020

Анимация контроллера навигации по умолчанию не работает внутри блока успеха API.

API.shared.sendData(url: APIPath.getData, requestType: .post, params: [:], objectType: RootObj.self) { (data) in
            guard let responseData = data else { return }
            print(responseData)
            if responseData.success! {
                if responseData.data != nil {
                    self.data = responseData.data
                    let vc = Utilities.shared.getViewController(identifier: MyViewController.className, storyboardType: .user) as! MyViewController
                    vc.data = self.data
                    self.navigationController?.pushViewController(vc, animated: true)
                } else {
                    self.showAlertOK(APP_NAME, message: responseData.message ?? "Data not found")
                }
            } else {
                self.showAlertOK(APP_NAME, message: responseData.message ?? "Response Failure")
            }
        }

Если я вызываю pushViewController вне блока API, анимация справа налево отображается для контроллера навигации. Помогите, пожалуйста, как добиться анимации по умолчанию внутри блока API?

1 Ответ

0 голосов
/ 18 февраля 2020

Возможно, вы вызываете этот pushViewController из фонового потока. Вы всегда должны выполнять манипуляции с пользовательским интерфейсом только из основного потока. Использование:

DispatchQueue.main.async {
   self.navigationController?.pushViewController(vc, animated: true)
}
...