在将其设置为 nil 后,我需要重新出现一个按钮,但我似乎无法弄清楚。
我将其设置为nil
使用:
self.navigationItem.rightBarButtonItem =nil;
在将其设置为 nil 后,我需要重新出现一个按钮,但我似乎无法弄清楚。
我将其设置为nil
使用:
self.navigationItem.rightBarButtonItem =nil;
当您将按钮设置为 nil 时,您会销毁(解除分配)它。只需重新创建按钮。或者,如果由于某种原因创建成本很高,请创建另一个保存按钮的属性,然后使用它来恢复rightBarButtonItem
.
是否需要将按钮设置为零?另一种方法是将按钮的背景 alpha 设置为 0,或者使用 setEnabled:NO 禁用它。如果有要求,您有两种选择:
将按钮存储为属性,并将按钮分配给 navigationItem 的 rightBarButtonItem。确保对属性进行所有按钮操作。
创建一个方法来创建带有按钮的 UINavigationItem 实例,并将此按钮分配给 rightBarButtonItem。顺便说一句,如果您想拥有与 nil 赋值完全相同的实例,则必须使用第一个选项。
希望能帮助到你!
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
[self.navigationItem setRightBarButtonItem:doneButton animated:YES]
通过将引用设置为 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;