在iOS 15上,当导航到具有透明导航栏的视图控制器时,透明栏的动画效果无法按预期工作。但是,如果您返回到具有透明导航栏的视图控制器,则动画将按预期工作。这是我设置视图控制器的方式:
请看下面的例子,注意从 secondVC 到 firstVC 的过渡是多么顺畅,但从 rootVC 到 firstVC 的过渡却不是这样。
rootVC
let appearance = UINavigationBarAppearance()
appearance.configureWithDefaultBackground()
appearance.backgroundColor = UIColor.red
self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance
firstVC
let appearance = UINavigationBarAppearance()
appearance.configureWithTransparentBackground()
self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance
secondVC
let appearance = UINavigationBarAppearance()
appearance.configureWithDefaultBackground()
appearance.backgroundColor = UIColor.yellow
self.navigationController?.navigationBar.standardAppearance = appearance
self.navigationController?.navigationBar.scrollEdgeAppearance = self.navigationController?.navigationBar.standardAppearance
请看下面的例子,注意从 secondVC 到 firstVC 的过渡是多么顺畅,但从 rootVC 到 firstVC 的过渡却不是这样。
示例项目: https://github.com/karlingen/NavigationTest
有任何想法为什么它会表现得这样吗?