Подтвердить что ты не робот

Как отключить 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, и все это получилось.

4b9b3361

Ответ 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