在我将其设置为nil之后,我需要重新显示一个按钮,但我似乎无法弄明白。
我使用
将其设置为nil
self.navigationItem.rightBarButtonItem =nil;
答案 0 :(得分:3)
当你将按钮设置为nil时,你会销毁(解除分配)它。只需重新创建按钮。或者,如果由于某种原因创建成本很高,请创建另一个保存按钮的属性,然后使用该属性恢复rightBarButtonItem
。
答案 1 :(得分:2)
要求将按钮设置为nil?另一种方法是将按钮的背景alpha设置为0,或者使用setEnabled:NO禁用它。如果这是一项要求,您有两种选择:
将按钮存储为属性,并将按钮分配给navigationItem的rightBarButtonItem。确保对财产进行所有按钮操作。
使用按钮创建一个创建UINavigationItem实例的方法,并将此按钮指定给rightBarButtonItem。顺便说一下,如果你想要在nil赋值中拥有完全相同的实例,你必须使用第一个选项。
希望它有所帮助!
答案 2 :(得分:0)
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
[self.navigationItem setRightBarButtonItem:doneButton animated:YES]
答案 3 :(得分:0)
通过将引用设置为nil来隐藏按钮,但是如果您想稍后恢复它,则需要挂起它的副本以便重新分配。
UIBarButtonItem *oldButton = self.navigationItem.rightBarButtonItem;
[oldButton retain];
self.navigationItem.rightBarButtonItem = nil;
//... later
self.navigationItem.rightBarButtonItem = oldButton;
[oldButton release];
或者创建barbuttonitem的属性,并在需要时立即传递它。
@property (nonatomic, retain) UIBarButtonItem *rightNavButton;
self.navigationItem.rightBarButtonItem = self.rightNavButton;