如何禁用导航栏项目?

Posted

技术标签:

【中文标题】如何禁用导航栏项目?【英文标题】:How to disable a UINavigationBarItem? 【发布时间】:2011-01-15 03:55:10 【问题描述】:

我正在尝试禁用添加到导航控制器栏的按钮。这是我添加它的方法:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Add" style:UIBarButtonItemStylePlain target:self action:@selector(addNew)];          
self.navigationItem.rightBarButtonItem = addButton;
[addButton release];

启用/禁用此类项目的最佳方法是什么?我试过这段代码:

addButton.disabled = YES;

但它当然不起作用。任何帮助,将不胜感激。谢谢。

编辑:应该是 addButton.enabled = YES;

哎呀

【问题讨论】:

【参考方案1】:

如果您在标题中定义addButton,并@synthesize 它,那么您将能够使用addButton.enabled = NO;,没有“禁用”设置器。

.h

@interface MyViewController 
    UIBarButtonItem *addButton;

@property(nonatomic,retain) UIBarButtonItem *addButton;
@end

.m

@implementation MyViewController
@synthesize addButton;

-(void)viewDidLoad
    addButton = [[UIBarButtonItem alloc] initWithTitle:@"Add" style:UIBarButtonItemStylePlain target:self action:@selector(addNew)];          
    self.navigationItem.rightBarButtonItem = addButton;
    [addButton release];

-(void)DoSomething
    addButton.enabled = NO;

【讨论】:

谢谢,我疯了。我不知道为什么我把残疾人放在世界上。我今天写代码太久了,看来我需要休息一下了。 :-) 谢谢

以上是关于如何禁用导航栏项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中禁用导航栏

触摸时禁用其他栏按钮项:导航栏

禁用隐藏导航栏的触摸

动态禁用导航按钮和标签栏

如何停止加载标签栏项目选择的视图?

禁用导航栏按钮项