Swift NavBar 隐藏 NavBarItem

Swift NavBar Hide NavBarItem

在我的视图控制器中,我有一个导航栏,左侧和右侧都有一个项目。我在视图控制器中也有 2 个按钮。我有它,所以每个按钮都有不同的功能。我还有连接到视图的 swift 文件。

我的问题是,当我在按钮操作中执行以下任一代码时,NavBar 项目不会改变。我不知道如何删除和添加项目,我也不明白我做错了什么。

self.navigationItem.rightBarButtonItem?.isEnabled = false
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.clear
self.navigationItem.rightBarButtonItem?.isEnabled = true
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.red

将故事板中的导航栏连接到视图控制器Class

@IBOutlet var navBar: UINavigationBar!

这将隐藏按钮

navBar.topItem?.rightBarButtonItem?.isEnabled = false
navBar.topItem?.rightBarButtonItem?.tintColor = UIColor.clear

这将显示按钮

navBar.topItem?.rightBarButtonItem?.isEnabled = true
navBar.topItem?.rightBarButtonItem?.tintColor = UIColor.red

抱歉,我的信誉度不高,无法发表评论。您正在使用哪个 IDE?

@dharmesh 的答案有效,如果您以编程方式创建按钮:

    let btn = UIButton(type: .system)
    btn.setTitle("Indietro", for: btn.state)
    
    btn.addTarget(self, action: #selector(annulla), for: .touchUpInside)
    self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: btn)

如果您使用 IDE 中的那个,它取决于 IDE 本身来存储值以隐藏或更改它