出于某种原因,此代码:
self.navigationController?.pushViewController(vc, animated: true)
行为方式与:
完全相同self.navigationController?.pushViewController(vc, animated: false)
该行为是非动画推送。我不确定为什么动画参数不再起作用。在 iOS 13 中运行正常。这是一个错误吗?
经过进一步研究,我还注意到在
viewWillAppear
、ViewWillDisappear
和 ViewDidAppear
中,animated
属性是 false。重写函数:
super.viewWillAppear(true)
没有任何区别。
为了进一步了解上下文,我使用一个
UIViewControllerRepresentable
,它显示一个 UITabBarController
,其中包含一个 NavigationController
。 UINavigationController
中的视图以及所有推送的视图都是我遇到此问题的地方。
解决了我的问题!
事实证明,在我的
UITabBarController
中,我的 viewDidAppear
函数中有这行代码:
super.viewWillAppear(animated)
而不是
viewDidAppear
!结果,嵌套的 UINavigationController
的动画关闭了。不确定为什么这在 iOS 13 中有效,但它不应该有效!
要点:记住正确覆盖您的
viewWillAppear
和 viewDidAppear
函数!
将其保留在这里,以防其他人遇到此问题。
使用viewWillAppear和viewDidAppear时,需要指定为super.WillApper(animation)。正确的错误修复。