Swift BarButtonItem 不更新

Posted

技术标签:

【中文标题】Swift BarButtonItem 不更新【英文标题】:Swift BarButtonItem doesn't update 【发布时间】:2020-02-04 13:48:59 【问题描述】:

我有一个导航控制器和一个根视图控制器。在这个 vc 中,我将一个表视图控制器作为弹出框呈现。当在此 tvc 上选择一行时,我执行一个委托方法(我知道它已执行)并关闭 tvc。 委托是我的视图控制器,所以它执行委托方法:

    func languageDidChange() 
    //selectedLanguageShort = a String
    languageItem.title = LanguageTVC.selectedLanguageShort
    initImageOCR(lang: LanguageTVC.selectedLanguageShort)
    print("This method is executed!")

该行被打印,但项目的标题(一个 UIBarButtonItem 出口)没有改变。 我认为这是因为没有 segue 或任何东西造成的,所以 vc 没有得到更新,但我找不到手动更新它的方法。

【问题讨论】:

【参考方案1】:

可以看这个链接:How do I set title for UIBarButtonItem?

很快你就可以试试这个说法:

navigationItem.rightBarButtonItem = UIBarButtonItem(title: LanguageTVC.selectedLanguageShort, style: .done, target: self, action: nil)

【讨论】:

谢谢。但是我的导航栏上有 3 个栏按钮项目,并且 languageItem 是一个出口。那么我应该重新初始化它吗? 您好帕特里克,欢迎您。三个按钮使这种情况有点复杂。我没有尝试过,但我认为,最好的方法是重新初始化整个导航栏。

以上是关于Swift BarButtonItem 不更新的主要内容,如果未能解决你的问题,请参考以下文章

IOS - Swift - 向 BarButtonItem 的 customView 添加目标和操作

如何在 swift 3 中以编程方式为 barButtonItem 设置操作?

在导航栏中插入图标​​/使 BarButtonItem 不可点击 Swift iOS

自定义 BarButtonItem 项:在右上角添加红点,Swift 4 IOS

以编程方式工具栏项目不显示iOS swift 4

自定义 barbuttonItem 不显示