Ios 在导航控制器中处理UIBarButtonItems的色调变化

Ios 在导航控制器中处理UIBarButtonItems的色调变化,ios,swift,Ios,Swift,我正试图改变一个uibarbuttonite的色调。当用户进行选择时,我会更改tintColor属性,该属性工作正常,但仅当用户在当前屏幕上时。一旦用户将新的视图控制器推送到堆栈上,更改就不会持续。当他们返回到屏幕时,更改后的色调将恢复到原来的颜色。我已尝试重置ViewWillDisplay和ViewDidDisplay中的属性。还是没什么。如果有人能向我解释发生了什么,我将不胜感激!多谢各位 @IBOutlet var dataRunNameBtn: UIBarButtonItem! ove

我正试图改变一个uibarbuttonite的色调。当用户进行选择时,我会更改tintColor属性,该属性工作正常,但仅当用户在当前屏幕上时。一旦用户将新的视图控制器推送到堆栈上,更改就不会持续。当他们返回到屏幕时,更改后的色调将恢复到原来的颜色。我已尝试重置ViewWillDisplay和ViewDidDisplay中的属性。还是没什么。如果有人能向我解释发生了什么,我将不胜感激!多谢各位

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

在我更新按钮后,淡色为我解决了这个问题

介意给我们一些代码吗?可以使用与tintColor有设置/交互的相关位置。用代码更新问题。你能解释一下什么是“相关地点”吗?谢谢。无论你在哪里设置或调用tintColor。你的模型是如何设置的?我很好奇每次调用模型时该值是否都会持久化。如果在设置self.dataRunNameBtn.title后设置断点,该值是否是您所期望的值?