ios - 如何更改详细 View Controller 中的后退按钮颜色?

标签 ios swift3 uinavigationcontroller

我想更改 DetailViewController 中后退按钮的颜色。 我正在使用 Swift 3 和 Xcode 8.3.3;但这不起作用:

navigationItem.backBarButtonItem?.tintColor = UIColor.darkGray

有什么方法可以做到?

我也试过:

navigationItem.leftBarButtonItem?.tintColor = UIColor.darkGray

但无济于事。

实际上我在调试器中验证了 navigationItem.backBarButtonItem 是 nil。

这是我上次使用 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 一定有问题。

最佳答案

我可以通过以下方式更改它:

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

希望这对你有用!

编辑:

创建项目后,您将在 Storyboard中看到以下内容:

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()
}

希望现在已经足够清楚了。

关于ios - 如何更改详细 View Controller 中的后退按钮颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46419286/

相关文章:

ios - 如何更改 objective-c 中特定字符/单词的颜色

ios - 在不可见的 View Controller 上强制旋转的最佳方法是什么?

swift - 断言 viewController 是其 tableView 的委托(delegate)和数据源

swift3 - 从 Swift 3 字符串中删除前导零的最有效方法

iphone - iphone 应用程序中的后退导航

iphone - 如何将图像和一些文本叠加到 UIImage 上?

ios - UIView 动画在动画期间确定中心

swift 3 : Async queue is still blocking main thread/freezing app?

ios - 将子层添加到导航栏与过渡冲突

iphone - vuforia 和 uinavigationcontroller