我在导航 Controller 中有两个 View Controller 。我正在尝试更改每个 View Controller 的导航栏的色调颜色。
我使用以下代码来完成此操作:
第一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 中的所有代码都是在加载 View Controller 之前执行的。
最佳答案
基于the answer here ,您可以实现:
override func willMove(toParentViewController parent: UIViewController?) {
super.willMove(toParentViewController: parent)
// Setup your navigation bar
}
我相信这将消除延迟。
关于ios - 延迟更改 viewWillAppear 中的 navigationBar.barTintColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48100627/