如何禁用UIBarButtonItem?

我有一个UIBarButtonItem只是不想被禁用。 短版:当我打电话

[myBarButtonItem setEnabled:NO]; 

什么都没发生。

myBarButtonItemmyBarButtonItem中的IBOutlet。 在Interface Builder中, myViewController作为一个对象添加到MainWindow中。 myBarButtonItem出口已连接到BarButtonItem,并具有相应的@syntesizeproperty行设置。

 @property (nonatomic, retain) IBOutlet UIBarButtonItem *myBarButtonItem; 

在myViewController.m中,

 @synthesize myBarButtonItem; 

任何人都有一个想法,为什么上面的setEnabled方法没有影响? 谢谢!

更新:修正了它! 不知道为什么,但显然没有设定的出路。 我用我的应用程序委托作为UIBarButtonItem的父对象,所有的工作。

你可以像这样禁用UIViewController中的左侧导航button,而不使用任何IBOutlet:

 self.navigationItem.leftBarButtonItem.enabled = NO; 

要禁用正确的导航button:

 self.navigationItem.rightBarButtonItem.enabled = NO; 

如果您的工具栏有一个IBOutlet(并且已经检查确认它是非零),请尝试:

 [ [ [ myToolBar items ] objectAtIndex: myBarButtonItemIndex ] setEnabled:(NO) ]; 

在我的情况下(斯威夫特)我有2个barButtonItems添加为一个数组 – 所以要禁用它们这是做的伎俩

  navigationItem.rightBarButtonItems?.first?.enabled = false navigationItem.rightBarButtonItems?.last?.enabled = false