导航控制器默认动画在API成功块SWIFT中不起作用

问题描述 投票:0回答:1

默认导航控制器动画在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")
            }
        }

如果我在API块外部调用pushViewController,则导航控制器将显示默认的从右到左动画。请帮助我如何实现API块内的默认动画?

ios animation swift3 uinavigationcontroller
1个回答
0
投票

可能您正在从后台线程调用该pushViewController。您应该始终仅从主线程进行UI操作。使用:

DispatchQueue.main.async {
   self.navigationController?.pushViewController(vc, animated: true)
}
© www.soinside.com 2019 - 2024. All rights reserved.