2017-09-26 76 views
0

我想更改DetailViewController中后退按钮的颜色。 我正在使用Swift 3和Xcode 8.3.3;但这是行不通的:如何更改DetailViewController中的后退按钮颜色?

navigationItem.backBarButtonItem?.tintColor = UIColor.darkGray 

这样做的方法是什么?

我也试过:

navigationItem.leftBarButtonItem?.tintColor = UIColor.darkGray 

,但无济于事。

其实我在调试器中验证navigationItem.backBarButtonItem是零。

这里是我最后的审判与viewDidLoad中的完整代码:

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.navigationController?.navigationBar.tintColor = UIColor.darkGray 
} 

下面是一个简短循序渐进的方式重现我的问题:

在Xcode 8.3.3:

  • 创建一个新的Xcode项目

  • 选择主从应用程序。你不需要核心数据。

  • 创建项目。

  • 内DetailViewController.swift的viewDidLoad中()函数中,添加行之一:

    self.navigationItem.backBarButtonItem?.tintColor = UIColor.darkGray 
    self.navigationController?.navigationBar.tintColor = UIColor.darkGray 
    

    你会看到当您尝试了DetailViewController的后退按钮保持蓝色。

    如果你看到不同的东西,那么我的Xcode必须有些奇怪。

回答

1

我能够有能力改变它:

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

希望这对你的作品!

编辑:

一旦创建了项目,你会看到在你的故事板下面:

enter image description here

我把它改成如下:

enter image description here

这给了我以下输出:

enter image description here

而且下面是DetailViewController我为viewDidLoad()代码:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationController?.navigationBar.tintColor = UIColor.red 
    // Do any additional setup after loading the view, typically from a nib. 
    configureView() 
} 

希望这是现在很清楚。

+0

谢谢,但遗憾的是它不工作我。 – Michel

+0

你在“viewDidLoad”中改变它吗? –

+0

你能分享你的代码吗? –

0

检查一下您是否正确嵌入导航控制器故事板内,然后写在detailviewcontroller的viewDidLoad中下面的代码:

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

这是工作的罚款

+0

你能解释一下你的意思吗?“正确地将导航控制器嵌入故事板内”。我需要检查什么?如果我看起来对我来说似乎都很正常。 – Michel

+0

我的意思是说,'去故事板 - >选择视图控制器,你想使初始viewcontroller->编辑器嵌入导航控制器,并使navigationcontroller作为初始viewcontroller。 – Dhruv

0

确保您正确嵌入式导航控制器。还要确保你已经给出了正确的控制器类以保证安全。

enter image description here

在控制器类只是添加此线 - :

import UIKit 

class First: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
self.navigationController?.navigationBar.tintColor = UIColor.darkGray 
     // Do any additional setup after loading the view. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

- 输出信号:

enter image description here

enter image description here

+0

这就是我所做的。 – Michel

+0

@Michel它对我来说工作得很好。 –

+0

@Michel如果它不适合你编辑你的问题更多的细节。 –