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