我有一个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()]
请参阅链接.... Here
看到上面的图像...你喜欢这个屏幕输出正确... !!!
你不应该使用UINavigationBar的background属性,而应该像这样使用barTintColor:
self.navigationController.navigationBar.barTintColor = UIColor.redColor()
正如在official documentation中写的更改条形背景,您必须访问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)