【问题标题】:Changing Color of Navigation Bar Independently独立更改导航栏的颜色
【发布时间】:2015-06-18 00:15:46
【问题描述】:

在开始之前,请注意我已经阅读了有关该主题的大量 StackOverflow 帖子,但我无法弄清楚如何将许多答案应用于我的特定场景。

在我的 Storyboard 中,我有一个带有嵌入式导航控制器的表格视图,以及一个带有嵌入式导航控制器的另一个表格视图。根据我的应用程序的设计,我正在寻找第一个表格视图中的导航栏与我的第二个表格视图中的导航栏具有不同的背景(色调)颜色。这是我的布局;

根据上述内容,我将第一个导航控制器栏的颜色设置为绿色,将第二个导航控制器栏的颜色设置为蓝色。然而,当我构建和运行应用程序时,第二个表格视图有一个 绿色 导航控制器,而我在 Interface Builder 中将它设置为蓝色。

我尝试在 SecondTableViewController.swift 文件中使用以下代码;

navigationController.navigationBar.barTintColor = UIColor.blueColor() self.navigationBar.tintColor = UIColor.blueColor()

这可能吗?还是我误解了导航控制器的工作原理?

【问题讨论】:

  • 你还需要设置半透明... self.navigationController.navigationBar.translucent = false

标签: ios swift uinavigationbar


【解决方案1】:

要将所有 UINavigationBar 实例一次设置为相同的颜色,请执行以下操作:

UINavigationBar.appearance().barTintColor = UIColor.greenColor()

要设置每个实例(根据需要),试试这个:

self.navigationBar.tintColor = UIColor.blueColor()
self.navigationController.navigationBar.translucent = false

【讨论】:

  • 感谢@Woodstock 的回复。我尝试了该代码,但我得到了相同的症状。如果我将该代码放在我的 FirstTableViewController.swift 文件中,它会将我的第一个和第二个表视图的栏更改为绿色。如果我将该代码放在我的 SecondTableViewController.swift 文件中,我无法为我的第二个表格视图独立设置条形颜色。
  • 谢谢@Woodstock。我想我在这里有一个概念问题。我很确定您的代码是正确的,但是无论我对第一个导航控制器上的导航栏所做的一切都会影响第二个。如果我完全隐藏第一个导航控制器上的导航栏,它会从第二个隐藏它。如果我尝试隐藏第二个导航控制器而不是第一个上的导航栏,它仍然可见。就像第二个导航控制器不会监听任何编码,它只接收它从第一个看到的内容。
  • 没关系@Woodstock!我知道了。我在安排代码时犯了一个错误,导致第二个表视图控制器不尊重我的工作。你的代码是正确的。
猜你喜欢
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-01
  • 2017-02-17
相关资源
最近更新 更多