我正在尝试更改 UIBarButtonItem 的色调。我在用户进行选择时更改了 tintColor 属性,它工作得很好,但只有当用户在当前屏幕上时。一旦用户将新的 View Controller 推送到堆栈上,更改就不会持续存在。当他们返回屏幕时,更改后的 tintColor 将恢复为原始颜色。我已尝试重置 viewWillAppear 和 viewDidAppear 中的属性。依然没有。如果有人可以向我解释发生了什么,将不胜感激!谢谢。
@IBOutlet var dataRunNameBtn: UIBarButtonItem!
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
updateUI()
}
private func updateUI() {
equationType.text = EquationCalculator.sI.equationType
formulaForEquation.text = EquationTableDataSource.sI.formulaText!
self.dataRunNameBtn.title = ClipBoardModel.sI.currentDataRun.name
// Clipboard
if ClipBoardModel.sI.currentDataRunComputed {
self.dataRunNameBtn.tintColor = UIColor.greenColor()
} else {
self.dataRunNameBtn.tintColor = UIColor.flatSandColor()
}
}
最佳答案
打电话
navigationController?.navigationBar.tintColorDidChange()
在我通过按钮色调颜色更新后为我解决了这个问题!
关于ios - 在导航 Controller 中处理 UIBarButtonItems 的色调颜色变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39026593/