【发布时间】:2017-03-27 23:39:25
【问题描述】:
我试图在导航堆栈上推送视图控制器时更改导航栏的颜色,在 navigationController(_:willShow:animated:) 期间使用 barTintColor。
代码如下:
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
if viewController is ViewerViewController {
navigationBar.barTintColor = UIColor(custom: .white)
navigationBar.tintColor = UIColor(custom: .black)
} else if viewController is FeedViewController {
navigationBar.barTintColor = UIColor(custom: .blue)
navigationBar.tintColor = UIColor(custom: .white)
}
}
当我推动视图控制器和使用向后滑动手势时,一切都很好(颜色过渡在两种方式中都很平滑)。
但是当我按下后退按钮时,一开始颜色没有改变,导航过渡完成,然后颜色改变,没有动画。 p>
是否有人已经遇到/解决了这个问题?任何线索将不胜感激。
【问题讨论】:
-
如果您编写代码,那么我们很容易确定它发生的原因
标签: ios colors uinavigationbar transition