如何隐藏UInavigationBar右栏按钮项?

时间:2011-05-13 17:36:56

标签: iphone uinavigationbar uibarbuttonitem

我使用以下代码将信息按钮添加到导航栏:

UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
    [infoButton addTarget:self action:@selector(showImage:) 
         forControlEvents:UIControlEventTouchUpInside]; 
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];

现在我想根据某些条件在代码的某些部分隐藏此按钮。但是我没有在导航栏中找到右侧栏按钮项的任何隐藏属性?

4 个答案:

答案 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