Модифицировать элементы UIToolBar программно - PullRequest
2 голосов
/ 08 января 2012

Я создал панель инструментов с помощью Interface Builder.У меня есть несколько кнопок на панели инструментов, которые подключены к различным IBAction методам.Что я хочу сделать, так это при выборе одного элемента визуально затенить другой, изменив его оттенок.

Как я могу получить ссылку на BarButtonItem?Я не вижу, где я могу дать каждому ярлыку уникальное имя, чтобы я мог ссылаться на него конкретно.

Обновление

Я создал IBOutlet дляпанель инструментов, так что теперь у меня есть доступ к нему.К сожалению, когда я пытаюсь установить tintColor, происходит сбой.Вот мой код:

UIBarButtonItem *penButton = [_toolBar.items objectAtIndex:3];
UIBarButtonItem *crossButton = [_toolBar.items objectAtIndex:4];

penButton.tintColor = [UIColor darkGrayColor];
crossButton.tintColor = [UIColor whiteColor];

Сгенерирована ошибка:

Завершение работы приложения из-за необработанного исключения 'NSInvalidArgumentException', причина: '- [UIBarButtonItem setTintColor:]: нераспознанный селектор отправленк экземпляру 0x631df50 '

1 Ответ

6 голосов
/ 08 января 2012

Попробуйте это:

NSArray *items = [myUIToolbar items];
for (UIBarButtonItem *barButton in items) {
   //do something with button
}
...