如何更改UINavigationItem的背景颜色?

我有一个UINavigationItem ,但我在属性检查器中找不到tittle,prompt和back按钮旁边的任何内容

在此处输入图像描述

我想知道如何使用代码更改我的UINavigationItem背景颜色? 还是以编程方式?

你可以通过代码改变它……

对于Objective-C:

  self.navigationController.navigationBar.barTintColor = [UIColor redColor]; 

在viewDidLoad方法中写上面的行。

对于Swift:

  self.navigationController?.navigationBar.barStyle = UIBarStyle.BlackTranslucent self.navigationController?.navigationBar.barTintColor = UIColor.redColor(); 

要么

  self.navigationController!.navigationBar .setBackgroundImage(UIImage .new(), forBarMetrics: UIBarMetrics.Default) self.navigationController!.navigationBar.shadowImage = UIImage .new(); self.navigationController!.navigationBar.translucent = true; self.navigationController!.navigationBar.backgroundColor = UIColor.redColor(); 

您可以根据自己的选择更改颜色。

要更改栏文字…

 navigationController.navigationBar.titleTextAttributes = [UITextAttributeTextColor: UIColor.blueColor()] 

请参阅链接…. 这里

在此处输入图像描述

看到上面的图片……你喜欢这个屏幕输出正确… !!!

你不应该使用UINavigationBar的background属性,而应该像这样使用barTintColor:

 self.navigationController.navigationBar.barTintColor = UIColor.redColor() 

如官方文档中所述,要更改条形背景,您必须访问barTintColor属性:

 The tint color to apply to the navigation bar background. 

如果要编辑导航栏的样式(如按钮颜色),则应访问barTint属性。 如果要编辑navigationItem的样式(如后退按钮),则应编辑按钮属性,而不是UINavigationItem。

一种可能的解决方案是嵌入视图控制器,它包含导航控制器中的导航项,并访问导航栏的属性颜色:

 // Color title 'navigationItem' UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()] // Background 'navigationBar' UINavigationBar.appearance().barTintColor = UIColor.blackColor() // Color title 'navigationBar' let color = UIColor.orangeColor() self.navigationController?.navigationBar.topItem?.backBarButtonItem?.setTitleTextAttributes( [NSForegroundColorAttributeName: color], forState: .Normal)