隐藏UINavigationItem的栏按钮

Sre*_*ari 14 iphone uibarbuttonitem

BarButtonnav.bar通过Interface Builder 左侧添加了一个项目,在我想要的代码中只显示了我的表视图的编辑模式.但我没有找到任何隐藏的属性来设置leftBarButtonItem(如:)self.navigationItem.leftBarButtonItem.hidden = YES.

我只能设置enabled属性.有人知道如何控制隐藏和显示属性leftBarButtonItem,请帮忙.

Adr*_*ano 60

这项工作我自己尝试过

self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.hidesBackButton = YES;      
Run Code Online (Sandbox Code Playgroud)

  • 在某些情况下,将它设置为nil对我来说不起作用,但将hidesBackButton设置为YES有效!谢谢. (3认同)

Nei*_*eil 8

我很确定"隐藏"它的唯一方法就是把它弄掉.

self.navigationItem.leftBarButtonItem = nil;
Run Code Online (Sandbox Code Playgroud)

虽然它不是你的问题的完美答案,因为这基本上摆脱了你的按钮而不是隐藏它.您要么必须重新创建它,要么保留原始按钮,只需将leftBarButtonItem设置回UIBarButtonItem即可.


Jer*_*ome 6

我有一个简单的功能来做到这一点.我有这样的导航. 导航栏 它来自Interface Builder,它有一个背景图像.

@IBOutlet weak var memberBtn: UIBarButtonItem!
Run Code Online (Sandbox Code Playgroud)

你可以隐藏/显示它:

func hideMemberBtn() {
    memberBtn.isEnabled = false
    memberBtn.tintColor = UIColor.clear
}
func showMemberBtn() {
    memberBtn.isEnabled = true
    memberBtn.tintColor = UIColor.white
}
Run Code Online (Sandbox Code Playgroud)

它很容易,但对我有用.您可以根据需要更改tintColor.希望得到帮助:]


Rui*_*uiz 5

您可以使用

// Hide
self.navigationItem.leftBarButtonItem = nil;

// Show
self.navigationItem.leftBarButtonItem = self.myBarButtonItem
Run Code Online (Sandbox Code Playgroud)

关键是确保您在 nilling 之前对按钮项有一个引用leftBarButtonItem

@property (strong, nonatomic) IBOutlet UIBarButtonItem *myBarButtonItem;
Run Code Online (Sandbox Code Playgroud)