有什么方法可以改变所有UINavigationBar颜色?

时间:2013-06-27 17:46:59

标签: ios uinavigationbar

我需要将iphone应用程序中的所有导航栏颜色从浅绿色更改为深灰色,这是最简单的方法吗?有一个简单的方法还是我必须逐个去?我有近100个视图,这将非常耗时。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

使用像这样的外观代理:

UINavigationBar *navBarAppearance = [UINavigationBar appearance];
navBarAppearance.tintColor = [UIColor darkGrayColor];

将此代码放在应用程序启动序列的某处。它会设置您创建的所有UINavigationBar 实例的色调,甚至是现有的实例(可能需要重新绘制或重新绘制)。

在受支持的类上调用[<class> appearance]将返回该类的特殊实例(实际上它可能是完全不同的类,但这并不重要)。您可以在此实例上调用方法,这些方法标记为外观选择器。在文档中,它们通常在“自定义外观”部分中列出。如果您调用任何其他方法,您可能会遇到异常。

这是来自UINavigationBar文档的摘录,其中包含受支持的外观方法:

  

自定义栏外观

  tintColor
– backgroundImageForBarMetrics:
– setBackgroundImage:forBarMetrics:
– titleVerticalPositionAdjustmentForBarMetrics:
– setTitleVerticalPositionAdjustment:forBarMetrics:
  titleTextAttributes

许多其他类都支持此协议。