iOS 14:应用程序挂在uinavigationController推送操作上并挂起该应用程序

问题描述

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

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

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

在调试时,我发现从未调用viewDidAppear

其他任何面临此类问题的人。

谢谢。

解决方法

在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,请确保在那里也正确地完成了同样的事情。