在导航栏中更改后退button的颜色

我试图改变设置button的颜色为白色,但不能让它改变。

我已经尝试了这两个:

navigationItem.leftBarButtonItem?.tintColor = UIColor.whiteColor() navigationItem.backBarButtonItem?.tintColor = UIColor.whiteColor() 

但没有改变,它仍然是这样的:

在这里输入图像说明

我该如何让这个button变成白色?

这段代码改变了箭头的颜色

 self.navigationController.navigationBar.tintColor = UIColor.whiteColor(); 

如果这不起作用,请使用下面的代码:

 self.navigationBar.barStyle = UIBarStyle.Black self.navigationBar.tintColor = UIColor.whiteColor() 

Swift 3笔记

UIColor.whiteColor()等已经简化为UIColor.white

此外,许多以前隐含的可选项已被更改为显式,所以您可能需要:

 self.navigationController?.navigationBar = 

您可以通过单击电路板上的空白区域来更改故事板中的全局色调颜色,并在右侧工具栏中select“显示文件检查器”,然后在工具栏底部看到“全局色调”选项。

截图

在故事板中非常容易设置:

在这里输入图像说明

在这里输入图像说明

你应该使用这个:

 navigationController?.navigationBar.barTintColor = .purple navigationController?.navigationBar.tintColor = .white 

你可以像这样使用。 把它放在AppDelegate.swift

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. UINavigationBar.appearance().translucent = false UINavigationBar.appearance().barTintColor = UIColor(rgba: "#2c8eb5") UINavigationBar.appearance().tintColor = UIColor.whiteColor() UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()] return true } 

Swift3中 ,将后退button设置为red

 self.navigationController?.navigationBar.tintColor = UIColor.red 

Swift 3

  override func viewDidLoad() { super.viewDidLoad() self.navigationController?.navigationBar.tintColor = UIColor.white } 
 self.navigationController?.navigationBar.tintColor = UIColor.redColor() 

这段代码实现了魔法。 将其更改为您的愿望,而不是redColor。

Swift 3

Swift 3最高的答案是不正确的。

在这里输入图像说明

正确的代码来改变颜色是:

 self.navigationController?.navigationBar.tintColor = UIColor.white 

如果要更改颜色,请将上面的UIColor.white更改为所需的颜色

在swift 2.0中使用

 self.navigationController!.navigationBar.tintColor = UIColor.whiteColor(); 

将以下代码添加到AppDelegate.swift中的didFinishLaunchingWithOptions函数中

 var navigationBarAppearace = UINavigationBar.appearance() navigationBarAppearace.tintColor = uicolorFromHex(0xffffff) // White color navigationBarAppearace.barTintColor = uicolorFromHex(0x034517) // Green shade // change navigation item title color navigationBarAppearace.titleTextAttributes =[NSForegroundColorAttributeName:UIColor.whiteColor()] 

让我们试试这个代码:

  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. let navigationBarAppearace = UINavigationBar.appearance() navigationBarAppearace.tintColor = UIColor.whiteColor() // Back buttons and such navigationBarAppearace.barTintColor = UIColor.purpleColor() // Bar's background color navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()] // Title's text color self.window?.backgroundColor = UIColor.whiteColor() return true } 

didFinishLaunchingWithOptions中的AppDelegate类中使用此代码。

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { UINavigationBar.appearance().tintColor = .white } 

对于Swift 2.0,通过在AppDelegate.swift中使用以下内容来更改导航栏色调颜色标题文本后退button色调颜色

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. //Navigation bar tint color change UINavigationBar.appearance().barTintColor = UIColor(red: 42/255.0, green: 140/255.0, blue: 166/255.0, alpha: 0.5) //Back button tint color change UINavigationBar.appearance().barStyle = UIBarStyle.Default UINavigationBar.appearance().tintColor = UIColor(red: 204/255.0, green: 255/255.0, blue: 204/255.0, alpha: 1) //Navigation Menu font tint color change UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor(red: 204/255.0, green: 255/255.0, blue: 204/255.0, alpha: 1), NSFontAttributeName: UIFont(name: "OpenSans-Bold", size: 25)!]//UIColor(red: 42/255.0, green: 140/255.0, blue: 166/255.0, alpha: 1.0) UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent return true } 
 self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; 

这适用于我,iOS 9.0以上

如果你已经在你的“设置”视图控制器中有后退button,并且想要将“付款信息”视图控制器上的后退button颜色更改为其他内容,那么可以在“设置”视图控制器的准备阶段中这样做。 :

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "YourPaymentInformationSegue" { //Make the back button for "Payment Information" gray: self.navigationItem.backBarButtonItem?.tintColor = UIColor.gray } } 

你有一个select隐藏你的后退button,并与你自己。 然后设置它的颜色。

我这样做了:

 self.navigationItem.setHidesBackButton(true, animated: true) let backbtn = UIBarButtonItem(title: "Back", style:UIBarButtonItemStyle.Plain, target: self, action: "backTapped:") self.navigationItem.leftBarButtonItem = backbtn self.navigationItem.leftBarButtonItem?.tintColor = UIColor.grayColor() 

不知道为什么没有人提到这个…但我正在做我正在做的viewDidLoad …,它不工作。 然后我把我的代码放到viewWillAppear ,这一切工作。

上面的解决scheme是更改一个barbuttonItem。 如果您想要更改代码中每个导航栏的颜色,请按照此答案 。

使用appearance()基本上改变到类本身就像在你的应用程序的所有视图的实例上进行全局更改。 更多详情请看这里