1个单一导航控制器内的不同导航栏颜色?

Posted

技术标签:

【中文标题】1个单一导航控制器内的不同导航栏颜色?【英文标题】:Different navigation bar tints inside 1 single navigation controller? 【发布时间】:2010-06-24 13:22:25 【问题描述】:

我的应用程序有一个带有 2 个视图的导航视图控制器: - 根视图:我希望其导航栏的色调为黑色 - 子视图:我希望其导航栏的色调为蓝色

为此,我在每个视图控制器的 viewDidLoad 方法中设置导航栏的色调颜色: self.navigationController.navigationBar.tintColor = [UIColor blackColor];

我的问题是在测试期间: - 第 1 步 - 我访问根视图:导航栏是黑色的:OK - 第 2 步 - 我推送子视图:导航栏是蓝色的:好的 - 第 3 步 - 我点击子视图的“返回”按钮:导航保持蓝色:KO

我应该添加任何添加代码以获得我想要的行为吗? (我尝试了一些肮脏的解决方法,例如在 viewWillAppear 中调用 drawRect 但它不起作用)

感谢您的帮助!

【问题讨论】:

【参考方案1】:

您应该可以在viewWillAppearviewDidAppear 中执行self.navigationController.navigationBar.tintColor = [UIColor blackColor];

【讨论】:

非常感谢您的回答。我有点惭愧,因为解决方案并不难找到:)【参考方案2】:

原因是navigationController是共享的。因此,当您将其颜色更改为蓝色时,您必须将其更改回黑色。

最好的方法就像 Elfred 说的,你应该在 viewWillAppear 中做

【讨论】:

以上是关于1个单一导航控制器内的不同导航栏颜色?的主要内容,如果未能解决你的问题,请参考以下文章

导航栏颜色未保存

标签栏控制器内的导航控制器不显示标题

为啥如果我为导航控制器栏设置颜色,它看起来与 Photoshop 或任何应用程序不同?

如何使用不同颜色快速设置导航栏返回箭头和backBarButtonItem标题

Swift 导航栏颜色

微信顶部导航栏字体颜色