【发布时间】:2018-01-04 17:34:53
【问题描述】:
我在导航控制器中有两个视图控制器。我正在尝试为每个视图控制器更改导航栏的色调。
我正在使用以下代码来完成此操作:
第一VC:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
navigationController?.navigationBar.barTintColor = .yandasRed
navigationController?.navigationBar.isTranslucent = false
}
第二个VC:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
navigationController?.navigationBar.barTintColor = .white
navigationController?.navigationBar.isTranslucent = true
}
FirstVC 到 SecondVC 之间的过渡是无缝的,看起来很棒。但是,当我从 SecondVC 返回到 FirstVC 时,更改导航栏色调颜色会出现延迟。大约 1/2 秒。
这是为什么?我的印象是 viewWillAppear 中的所有代码都是在加载视图控制器之前执行的。
【问题讨论】:
-
尝试了链接问题中的代码。它在加载时立即使应用程序崩溃。我不了解 isViewLoaded 的工作原理,所以可能代码不完整?