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