iOS如何在设置全局色调颜色时保持导航项颜色不变?

Posted

技术标签:

【中文标题】iOS如何在设置全局色调颜色时保持导航项颜色不变?【英文标题】:iOS How To Keep Navigation Item Color From Changing When Global Tint Color Set? 【发布时间】:2015-10-16 10:04:49 【问题描述】:

在 iPhone 和 ios 9.0 中,我发现全局色调颜色与设置的特定颜色有些奇怪。

在 AppDelegate 中设置以下代码后,导航项颜色会在显示警报后发生变化。

    window!.tintColor = UIColor.greenColor()

    // per docs "The tint color to apply to the navigation items and bar button items."
    UINavigationBar.appearance().tintColor = UIColor.redColor()

    UITabBar.appearance().tintColor = UIColor.yellowColor()

我希望导航项颜色保持我设置的颜色。 (颜色和屏幕截图来自我为显示问题而创建的临时应用程序。)

请注意下面的“主页”导航项如何变为绿色,这是在 App Delegate 中设置的全局色调。

为什么“家”变成了绿色? 如何防止它这样做?

代码在这里:https://bitbucket.org/finneycanhelp/tintcolorwhat

【问题讨论】:

您是否尝试过在不使用外观协议的情况下设置 UINavigationBar 的 tintColor 显式? myNavigationBar.tintColor = [UIColor blueColor]? 这是个好问题,psci。由于实际应用程序(不是本示例应用程序)由许多带有导航控制器的视图控制器组成,我们需要使用外观协议。 我开始怀疑是否仅使用情节提要设置全局色调颜色就是答案。我想确定我以编程方式设置它。我将在真实应用程序中检查此选项。 我们更喜欢程序化方法,因为我们希望跨应用程序的外观和感觉保持一致,这就是我们使用代码的原因。 【参考方案1】:

使用情节提要而不是编程方式设置全局色调似乎是一个可行的解决方案。

【讨论】:

以上是关于iOS如何在设置全局色调颜色时保持导航项颜色不变?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 7 中设置导航栏的色调颜色

iOS13导航栏后退栏按钮项目色调颜色

UIBarButtonItem 标题文本始终是全局色调颜色

色调颜色正在改变导航栏中图像的颜色 swift 3

更改状态栏色调颜色

设置全局色调时,EKEventEditViewController 中的灰色导航项按钮