ios - 在导航 Controller 中处理 UIBarButtonItems 的色调颜色变化

标签 ios swift

我正在尝试更改 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/

相关文章:

ios - 在 iOS 8 中,Tabbar 的 View Controller 在更改方向时重新加载

ios - 如何在 iOS Swift 中实时录制音频声音,然后使用内置扬声器或耳机播放?

swift - 在 SKScene 中调用 UIActivity ViewController

ios - 在 Xcode 中的其他类似工作空间中导入带有 pod 的工作空间

ios - 将应用程序安装到设备 Xcode 11.6 时无法运行应用程序错误

ios - 仅在按下 uitableviewcell 时显示 View

ios - 从 subview 中拖动对象并将其放置在父 View 中

ios - 使用 iOS 获取蓝牙 LE 扫描响应数据

ios - 如何在 Swift 中删除以下观察的 GeoFire 句柄?

swift - 全部删除然后保存Core Data中的对象