我使用以下代码将信息按钮添加到导航栏:
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showImage:)
forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
现在我想根据某些条件在代码的某些部分隐藏此按钮。但是我没有在导航栏中找到右侧栏按钮项的任何隐藏属性?
答案 0 :(得分:13)
要隐藏,请尝试为nil
分配rightBarButtonItem
,如下所示。
self.navigationItem.rightBarButtonItem = nil ;
答案 1 :(得分:10)
最佳选择是使用buttonItem.enabled = NO
表示目前无法使用此功能。在大多数情况下,这应该是正确的行为。
但是,如果您打算让它消失,最好的方法是存储对条形按钮的引用。如果希望它消失,请将rightBarButtonItem设置为nil,并在需要显示时将其设置为存储的引用。
答案 2 :(得分:1)
如果你有多个UIBarButtonItem并且你只想删除一个,你可以这样做:
NSMutableArray *barButtonItems = [self.toobbar.items mutableCopy];
[barButtonItems removeObject:self.buttonToRemove];
[self.toolbar setItems:[barButtonItems copy] animated:NO];
答案 3 :(得分:1)
如果你只是想隐藏'它在视觉上:
斯威夫特3:
self.navigationItem.rightBarButtonItem?.tintColor = UIColor.clear
self.navigationItem.rightBarButtonItem?.isEnabled = false