首页 > 解决方案 > iOS 14:应用挂起 uinavigationController 推送操作并挂起应用

问题描述

在 iOS14 设备中,我的应用程序不会加载视图控制器而只是冻结应用程序。

self.navigationController!.pushViewController(itemDetailVC, animated: true)

在 iOS 14 以下的所有设备上,它都可以正常工作。但在这里它不会加载下一个视图控制器。

在调试时,我认为viewDidAppear永远不会被调用。

其他面临此类问题的人。

提前致谢。

标签: uinavigationcontrollerios14

解决方案


UINavigationController 过渡动画出现非常奇怪的问题。生成的视图控制器出现损坏和移位。难以置信它是多么破碎。

该问题是由于视图控制器覆盖功能上的错误造成的。仔细检查您的 onViewWill/onViewDidAppear。应该覆盖正确的功能

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    Logger.verbose(topic: .appState, message: "viewWillAppear")
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    Logger.verbose(topic: .appState, message: "viewDidAppear")
}

此外,如果您使用的是 UITabBarController,请确保在那里也正确完成了同样的事情。


推荐阅读