编辑:自定义代码 此问题是由于在初始加载应用程序期间设置所有对象的tintColor引起的。
我的代码中有一个非常奇怪的情况。左后箭头的tintColor在:
之后变为另一种颜色更改颜色后,我无法将其设置回原始颜色。
我尝试了什么?
1)在多个位置设置颜色。 (ViewWillAppear / ViewDidAppear)。
self.navigationItem.backBarButtonItem?.tintColor = UIColor.redColor()
self.navigationController?.navigationBar.tintColor = UIColor.redColor()
2)设置外观。
UINavigationBar.appearance().tintColor = UIColor.yellowColor()
3)尝试覆盖方法didSetTintColor
4)在发布UIAlertView(下面的例子)后更改tintColor
UIAlertAction(title: "Example button", style: .Cancel, handler: { action in
alertController.removeFromParentViewController()
self.navigationItem.backBarButtonItem?.tintColor = UIColor.greenColor()
self.navigationController?.navigationBar.tintColor = UIColor.greenColor()
})
5)试过这个解决方案: Navigation bar tint color changes after auto dimissal of UIAlertView
似乎没什么用。这可能是IOS的错误吗? 奇怪的是切换选项卡后不会发生更改,但是在不使用UIAlertViewController时也不会发生。
答案 0 :(得分:0)
尝试设置TintAdjustmentMode
,
[self.view setTintAdjustmentMode:UIViewTintAdjustmentModeNormal];
或
[self.view setTintAdjustmentMode:UIViewTintAdjustmentModeAutomatic];
答案 1 :(得分:0)
我发现了问题。在app delegate中,一个函数正在设置整个应用程序的所有tintColors。显然,ActionController的关闭将再次改变tintColors
for window in UIApplication.sharedApplication().windows {
window.tintColor = UIColor.wrongColor()
}