影响应用程序的导航栏 tintColor 更改。问题

Posted

技术标签:

【中文标题】影响应用程序的导航栏 tintColor 更改。问题【英文标题】:Navbar tintColor change affecting app. Issue 【发布时间】:2013-12-28 04:11:09 【问题描述】:

我目前在我的一个 VC 的 viewDidLoad 方法中使用它,它嵌入在导航控制器中。我们将嵌入式 VC 称为 VC1。

self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:153/256.0 green:204/256.0 blue:53/256.0 alpha:1.0];

-(不能 ctl+k,在 iPhone 上).. 无论如何,代码有效地改变了我的 VC 的 UIBarButtonItem 的颜色,但是,它也改变了我的第二个视图控制器的条形按钮,它是从 VC1 推送的( NavController 嵌入 VC1 将 segues 推送到“VC2”),如何保持 VC2 的 tintColor 不改变?

附注我需要保持 push segue。

【问题讨论】:

【参考方案1】:

根据Apple's documentation for tintColor

讨论

ios v7.0 中,UIView 的所有子类都派生出它们的行为 来自基类的 tintColor。请参阅 tintColor 的讨论 UIView 级别了解更多信息。

这意味着 所有视图 现在从导航栏中选择 tintColor。如果您只想为一个视图控制器设置它,您需要为所有视图设置默认颜色,然后在“viewWillAppear:”期间显式设置它(并且可能撤消它 - 或恢复原始色调颜色你想要的——通过“viewWillDisappear”)。

【讨论】:

嘿,这些方法工作得很好,但是在使用 viewWillAppear 时会有轻微的重叠,因为在它实际切换视图之前,我可以在非常快的时间范围内看到按钮转换颜色。我已经尝试过“Did”方法,但也不是,有没有办法可以给 viewWillAppear 一个时机? 您真的要延迟您的视图出现吗? 不.. 我不知道。但我想知道是否可以延迟 UIBarButton tintColor 更改。我想这很重要的唯一原因是它是一个“视觉效果缺陷”,我想我会说.. 或者在 iPhone 上实际运行时这不会有任何问题吗?.. 仍在等待 duns# for iOSDevPrgrm 叹息 您还可以在情节提要或 xib 文件中更改视图控制器上的 tintColor

以上是关于影响应用程序的导航栏 tintColor 更改。问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS:更改所有导航栏的 self.navigationController.navigationBar.tintColor 更改

更改导航栏中后退按钮的颜色

以编程方式更改导航栏标题

更改导航栏的按钮颜色

导航栏 tintColor 在 iOS 6 应用程序的 iOS 7 兼容模式下不受尊重?

如何更改导航栏下方的边框颜色?