隐藏导航控制器的rightBarButtonItem

时间:2010-06-15 05:49:48

标签: ios iphone uinavigationcontroller uibarbuttonitem rightbarbuttonitem

有谁知道如何隐藏rightBarButtonItem的{​​{1}}?在我的应用程序中,我有一个编辑按钮作为UINavigationController的{​​{1}}。我想隐瞒这个?一些操作完成后,UIBarButton`。

3 个答案:

答案 0 :(得分:16)

隐藏右键:self.navigationItem.rightBarButtonItem = nil;

现在,要表明:

  1. 如果您在视图控制器中设置了右键,则将其分配给self.editButtonItem,然后再次分配它以显示它:

    self.navigationItem.rightBarButtonItem = self.editButtonItem;

  2. 如果通过分配和启动UIBarButtonItem在视图控制器中设置右键,则只需在视图控制器中保留对UIBarButtonItem的引用,并在需要显示时再次分配它。

答案 1 :(得分:13)

尝试

self.navigationItem.rightBarButtonItem = nil;

如果你想要它,你必须实现一个按钮,即

UIBarButtonItem *rightBarButton = 
 [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch
                                               target:self
                                               action:@selector(searchBar:)];
self.navigationItem.rightBarButtonItem = rightBarButton;
[rightBarButton release];

答案 2 :(得分:13)

如果您需要根据某些条件隐藏/显示按钮,请尝试以下操作:

if (condition) { 
    self.navigationItem.rightBarButtonItem.title = @"";
    self.navigationItem.rightBarButtonItem.enabled = NO;
} else {
    self.navigationItem.rightBarButtonItem.title = @"my button title";
    self.navigationItem.rightBarButtonItem.enabled = YES;
}

这样您就不必在属性中保存对按钮的引用,也不用担心在新按钮上对操作进行连接。