如何隐藏UIBarButtonItem?

时间:2011-10-21 19:09:45

标签: iphone uibutton uinavigationbar uibarbuttonitem show-hide

我在IB中创建了一个简单的用户界面,其中包含我在右侧拖放的UINavigationBarUIBarButtonItem

我试图将此按钮设置为隐藏一段时间,但我遇到了一些问题。

到目前为止,我尝试过使用:

self.NavigationItem.rightBarButton = nil;

......这对我不起作用。我也尝试创建和IBOutlet并将其链接到按钮,但我也遇到了问题。我认为这应该很简单,也许我过于复杂了,但此时我很难过!

有人可以帮帮我吗?

6 个答案:

答案 0 :(得分:25)

UINavigationItem没有rightBarButton属性。请改为rightBarButtonItem[self.navigationItem setRightBarButtonItem:nil animated:NO];):

self.navigationController.navigationItem.rightBarButtonItem = nil;
// Or
self.navigationItem.rightBarButtonItem = nil;
// Or
[self.navigationItem setRightBarButtonItem:nil animated:NO];

答案 1 :(得分:1)

只需重置按钮

即可
   -(void)setItems:(NSArray *)items animated:(BOOL)animated 

此处有更多信息:http://developer.apple.com/iphone/library/documentation/uikit/reference/UIToolbar_Class/Reference/Reference.html#//apple_ref/occ/instm/UIToolbar/setItems%3aanimated%3a

您可以使用items属性获取当前项目,然后删除您不想显示的项目并传入新的NSArray。

答案 2 :(得分:0)

您还可以添加UIButton作为UIBarButtonItem的customView。然后在customView(UIButton)

上设置hidden属性

答案 3 :(得分:0)

您可以将其设置为在文本被禁用时清除文本,而不是删除栏按钮项并销毁按钮及其附加的故事板segue。

[self.navigationItem.rightBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor clearColor]}
                                                      forState:UIControlStateDisabled];

然后,当你想要隐藏条形按钮项时,你可以这样做:

self.navigationItem.rightBarButton.enabled = NO;

它没有隐藏属性,但这提供了相同的结果。

答案 4 :(得分:0)

实际上,您可以创建一个对所需UIBarButtonItem的IBOutlet引用,并在需要时执行以下操作:

[self.yourOutletRerence setImage: nil];

答案 5 :(得分:0)

最简单的解决方案:只需将BarButtonItem的标识符更改为自定义。