导航图块文本颜色不变

时间:2018-08-06 15:38:55

标签: ios swift uinavigationcontroller uinavigationitem

我有三个控制器。比方说控制器A,B和C。

控制器A中的

导航标题颜色为红色。 控制器B中的蓝色和控制器C中的绿色。

当我按下这些viewcontroller导航标题时,颜色会完美变化。但是,当从C返回A或从B返回A时,导航图块分别变为绿色和蓝色(可能是蓝色和红色)。

我做了什么: 我已经从情节提要中的界面生成器中嵌入了导航控制器。为了更改标题颜色,我在每个视图控制器的viewWillAppear中使用了以下代码。我将所有代码放在主队列中。还进行了检查,没有将它们放在异步块中,结果是相同的。

 override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    Dispatch.main.async{
       self.navigationItem.title = "viewcontroller2"
       let textAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue]
       self.navigationController?.navigationBar.titleTextAttributes = textAttributes 
    }
}

请注意:当我使用导航后退按钮返回时,会出现此问题,但在向后滑动时,标题颜色会正常显示。 iOS版本:11.4.1。在iOS版本10.3.3中,不会发生此问题。

1 个答案:

答案 0 :(得分:-1)

请使用like

self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.blue]
self.navigationController?.navigationBar.layoutIfNeeded()