0

在将其设置为 nil 后,我需要重新出现一个按钮,但我似乎无法弄清楚。

我将其设置为nil使用:

self.navigationItem.rightBarButtonItem =nil;
4

4 回答 4

3

当您将按钮设置为 nil 时,您会销毁(解除分配)它。只需重新创建按钮。或者,如果由于某种原因创建成本很高,请创建另一个保存按钮的属性,然后使用它来恢复rightBarButtonItem.

于 2013-06-01T18:50:04.773 回答
2

是否需要将按钮设置为零?另一种方法是将按钮的背景 alpha 设置为 0,或者使用 setEnabled:NO 禁用它。如果有要求,您有两种选择:

  • 将按钮存储为属性,并将按钮分配给 navigationItem 的 rightBarButtonItem。确保对属性进行所有按钮操作。

  • 创建一个方法来创建带有按钮的 UINavigationItem 实例,并将此按钮分配给 rightBarButtonItem。顺便说一句,如果您想拥有与 nil 赋值完全相同的实例,则必须使用第一个选项。

希望能帮助到你!

于 2013-06-02T00:08:35.267 回答
0
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)];
[self.navigationItem setRightBarButtonItem:doneButton animated:YES]
于 2013-06-01T18:50:44.463 回答
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;
于 2013-06-01T19:00:10.850 回答