隐藏导航控制器的rightBarButtonItem

use*_*161 13 iphone uinavigationcontroller uibarbuttonitem rightbarbuttonitem ios

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

MyC*_*ner 17

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

现在,展示它:

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

    self.navigationItem.rightBarButtonItem = self.editButtonItem;

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


Lee*_*ong 14

尝试

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

当你想要它回来虽然你必须实现一个按钮,即

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


Mik*_*rne 14

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

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

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