在一个viewcontroller

时间:2017-09-30 13:37:34

标签: swift uibarbuttonitem ios11 xcode9 tint

我有两个由tabbarcontrollers访问的视图控制器和一个带有来自两个主视图控制器的show detail segue的子视图。第一个/介绍视图控制器具有蓝色(默认)barbuttonitem文本。当您从第一个/前置控制器立即转到子视图时,barbuttonitem文本保持蓝色(默认)。但是,当你去第二个viewcontroller时,它有黑色barbuttonitem文本。然后,当您返回到第一个视图控制器然后进入子视图时,之前为蓝色(默认)的文本现在变为黑色。

enter image description here

我尝试在所有viewcontorllers的ViewDidLoad中设置色调颜色但没有成功,如下所示:

self.navigationController?.navigationBar.barTintColor = nil
self.navigationController?.navigationBar.tintColor = nil

我可以从哪里离开?

1 个答案:

答案 0 :(得分:-1)

想出来!这是一个奇怪的...

在我的初始视图控制器(上面的介绍视图)中,我在viewDidLoad的底部有以下代码来调整搜索栏的“取消”文本的颜色:

let cancelButtonAttributes: NSDictionary = [NSForegroundColorAttributeName: UIColor.black]
UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes as? [String : AnyObject], for: UIControlState.normal)

使调试变得困难的因素:

  1. 此代码位于一个看起来运行正常的视图控制器上,而不是那些被破坏的
  2. 此代码调整了搜索栏的取消按钮,这似乎与实际的导航控制器无关。仔细观察,代码实际上是调整UIBarButtonItem的外观。