我想更改DetailViewController中后退按钮的颜色。 我使用的是Swift 3和Xcode 8.3.3;但这不起作用:
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项目
选择Master-Detail应用程序。您不需要Core-Data。
创建项目。
在DetailViewController.swift的viewDidLoad()函数中,添加以下行之一:
self.navigationItem.backBarButtonItem?.tintColor = UIColor.darkGray
self.navigationController?.navigationBar.tintColor = UIColor.darkGray
当您尝试DetailViewController的“后退”按钮保持蓝色时,您将看到。
如果你看到不同的东西,那么我的Xcode必须有些奇怪。
答案 0 :(得分:1)
我能够用:
来改变它self.navigationController?.navigationBar.tintColor = UIColor.white
希望这适合你!
修改强>
创建项目后,您将在故事板中看到以下内容:
我将其更改为以下内容:
这给了我以下输出:
以下是我在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()
}
希望现在已经足够清楚了。
答案 1 :(得分:0)
检查您是否在故事板中正确嵌入了导航控制器,然后在代码中写入detailviewcontroller的viewDIDLoad:
self.navigationController?.navigationBar.tintColor = UIColor.brown
工作正常
答案 2 :(得分:0)
确保您已正确嵌入导航控制器。同时确保您已将正确的控制器类设置为更安全的一面。
在控制器类中,只需添加以下行:
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.
}
}
输出 - :