如何禁用UIBarButtonItem?

Dan*_*erz 39 iphone ios

我有一个UIBarButtonItem,不想被禁用.简短版:我打电话的时候

[myBarButtonItem setEnabled:NO];
Run Code Online (Sandbox Code Playgroud)

什么都没发生.

myBarButtonItem是一个IBOutlet in myVIewController.myViewController已添加为MainWindowInterface Builder中的对象.该myBarButtonItem出口被连接到所述BarButtonItem,并具有相应的@syntesizeproperty行设置.

@property (nonatomic, retain) IBOutlet UIBarButtonItem *myBarButtonItem;
Run Code Online (Sandbox Code Playgroud)

在myViewController.m中,

@synthesize myBarButtonItem;
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么上述setEnabled方法没有影响?谢谢!

更新:修正了!不知道为什么,但显然出口没有设置.我使用我的App Delegate作为UIBarButtonItem的父对象,并且一切顺利.

Nic*_*rdu 77

您可以在UIViewController中禁用左侧导航按钮,而不使用任何IBOutlet:

self.navigationItem.leftBarButtonItem.enabled = NO;
Run Code Online (Sandbox Code Playgroud)

要禁用右侧导航按钮:

self.navigationItem.rightBarButtonItem.enabled = NO;
Run Code Online (Sandbox Code Playgroud)

Swift3

self.navigationItem.rightBarButtonItem?.isEnabled = false
Run Code Online (Sandbox Code Playgroud)


hot*_*aw2 12

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

[ [ [ myToolBar items ] objectAtIndex: myBarButtonItemIndex ] setEnabled:(NO) ];
Run Code Online (Sandbox Code Playgroud)