ios - 延迟更改 viewWillAppear 中的 navigationBar.barTintColor

标签 ios swift

我在导航 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/

相关文章:

json - Swift:过滤 TableView 中的结果,因此它不会从 JSON 返回重复项

ios - 第二个 View 上的 TableView 单元格

ios - 从 NSArray 中移除对象

ios - 'NSUnknownKeyException',原因 : '[<ViewController 0x8a45930> setValue:forUndefinedKey:]:

swift - 为 AVPlayer 视频添加字幕

swift - SceneKit 改变散射函数

ios - 核心图像检测器(CIDetector)未检测到 QRCodes

iphone - iOS Storyboard 模态序列和内存

ios - 如何创建 NSArray 的副本并在不影响原始 NSArray 的情况下更改它?

ios - 带有固定 X 轴标签的折线图,如 iOS 中的 healthkit 图