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

时间:2016-08-18 20:01:27

标签: ios swift

我正在尝试更改UIBarButtonItem的色调颜色。我在用户进行选择时更改了tintColor属性,它可以正常工作,但仅限用户在当前屏幕上。一旦用户将新的视图控制器推入堆栈,更改就不会持续存在。当他们返回到屏幕时,更改的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()
    }
}

1 个答案:

答案 0 :(得分:0)

致电

navigationController?.navigationBar.tintColorDidChange()

我用按钮色调更新颜色后解决了这个问题!