pushViewController 和 popViewController 动画在 iOS 14 中不再起作用

pushViewController & popViewController animation no longer functioning in iOS 14

出于某种原因,此代码:

self.navigationController?.pushViewController(vc, animated: true)

与以下行为完全相同:

self.navigationController?.pushViewController(vc, animated: false)

该行为是非动画推送。我不确定为什么动画参数不再起作用。它在 iOS 13 中正常工作。这是一个错误吗?

经过进一步研究,我还注意到 viewWillAppearViewWillDisappearViewDidAppear 中的 animated 属性 是错误的。使用以下函数覆盖函数:

super.viewWillAppear(true)

没有任何区别。

为了进一步了解上下文,我使用 UIViewControllerRepresentable 显示 UITabBarController,其中包含 NavigationControllerUINavigationController 中的视图以及所有推送的视图都是我遇到此问题的地方。

解决了我的问题!

原来在我的 UITabBarController 我的 viewDidAppear 函数中有这行代码:

super.viewWillAppear(animated)

而不是viewDidAppear!结果,嵌套的 UINavigationController 关闭了动画。不确定为什么这在 iOS 13 中起作用,但它不应该起作用!

要点:记得正确覆盖 viewWillAppearviewDidAppear 函数!

将保留在此处以防其他人遇到此问题。