Как отключить UIBarButtonItem?
У меня есть UIBarButtonItem, который просто не хочет отключиться. Короткая версия: когда я звоню
[myBarButtonItem setEnabled:NO];
Ничего не происходит.
myBarButtonItem
является IBOutlet в myVIewController
. myVIewController
был добавлен как объект к MainWindow
в Interface Builder. Вывод myBarButtonItem
был подключен к BarButtonItem и имеет соответствующие строки @syntesize
и property
.
@property (nonatomic, retain) IBOutlet UIBarButtonItem *myBarButtonItem;
В myViewController.m,
@synthesize myBarButtonItem;
У кого-нибудь есть идея, почему вышеупомянутый метод setEnabled
не влияет? Спасибо!
ОБНОВЛЕНИЕ: Исправлено! Не знаю, почему, но, похоже, выход не был установлен. Я использовал свой App Delegate в качестве родительского объекта для UIBarButtonItem, и все это получилось.
Ответы
Ответ 1
Вы можете отключить левую навигационную кнопку внутри UIViewController, как это, без использования IBOutlet:
self.navigationItem.leftBarButtonItem.enabled = NO;
Чтобы отключить правую навигационную кнопку:
self.navigationItem.rightBarButtonItem.enabled = NO;
Ответ 2
Если ваша панель инструментов имеет IBOutlet (и вы проверили, чтобы убедиться, что она не равна нулю), попробуйте:
[ [ [ myToolBar items ] objectAtIndex: myBarButtonItemIndex ] setEnabled:(NO) ];
Ответ 3
В моем случае (Swift) у меня было 2 barButtonItems добавлено как массив - поэтому для их отключения это сделало трюк
navigationItem.rightBarButtonItems?.first?.enabled = false
navigationItem.rightBarButtonItems?.last?.enabled = false