Ios 独立更改导航栏的颜色

Ios 独立更改导航栏的颜色,ios,swift,uinavigationbar,Ios,Swift,Uinavigationbar,在我开始之前,请知道我已经阅读了许多关于这个主题的StackOverflow帖子,但是我还没有弄清楚如何将许多答案应用到我的特定场景中 在我的故事板中,我有一个带有嵌入式导航控制器的表视图,以及一个到另一个带有嵌入式导航控制器的表视图的序列。根据我的应用程序的设计,我希望第一个表视图中的导航栏的背景(色调)颜色与第二个表视图中的导航栏的背景(色调)颜色不同。这是我的布局 根据上述内容,我将第一个导航控制器栏的颜色设置为绿色,第二个导航控制器的颜色设置为蓝色。但是,当我构建并运行应用程序时,第二

在我开始之前,请知道我已经阅读了许多关于这个主题的StackOverflow帖子,但是我还没有弄清楚如何将许多答案应用到我的特定场景中

在我的故事板中,我有一个带有嵌入式导航控制器的表视图,以及一个到另一个带有嵌入式导航控制器的表视图的序列。根据我的应用程序的设计,我希望第一个表视图中的导航栏的背景(色调)颜色与第二个表视图中的导航栏的背景(色调)颜色不同。这是我的布局

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

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

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


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

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

UINavigationBar.appearance().barTintColor = UIColor.greenColor()
要设置每个实例(根据需要),请尝试以下操作:

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

您还需要设置半透明性。。。self.navigationController.navigationBar.translucent=false感谢您的回复@Woodstock。我试过了,但我也有同样的症状。如果将该代码放入FirstTableViewController.swift文件中,则第一个和第二个表格视图的条形图都将变为绿色。如果我将该代码放在SecondTableViewController.swift文件中,我无法单独设置第二个表格视图的条形图颜色。谢谢@Woodstock。我想我有一个概念上的问题。我很确定你的代码是正确的,但是无论我对第一个导航控制器上的导航栏做什么,都会影响第二个。如果我完全隐藏第一个导航控制器上的导航栏,它会对第二个导航控制器隐藏它。如果我试图隐藏第二个导航控制器上的导航栏,而不是第一个,它仍然可见。就像第二个导航控制器不会听任何编码一样,它只从第一个导航控制器中获取它所看到的内容。Nevermind@Woodstock!我得到了它。我在安排代码时出错,导致第二个表视图控制器不尊重我的工作。你的代码是正确的。