Динамическое обновление элементов на панели инструментов контроллера навигации - PullRequest
0 голосов
/ 05 июня 2011

У меня есть навигационный контроллер с панелью инструментов. Панель инструментов содержит сегментированный элемент управления с тремя элементами. Когда пользователь выбирает один из сегментов в этом элементе управления, мне нужно обновить панель инструментов и добавить к ней дополнительный элемент. Я попробовал следующий код в viewDidLoad:

-(void)viewDidLoad {
    [super viewDidLoad];

    [self setToolbarItems:items_array];
}

и в обработчике событий didChangeSegmentControl:

-(void)didChangeSegmentControl:(UISegmentedControl*)sender {
    NSArray* items = [self currentToolbarItems];
    [self setToolbarItems: items];
}

Но после изменения элементов панели инструментов в didChangeSegmentControl они исчезают. Как можно обновить элементы панели инструментов не в методе viewDidLoad?

1 Ответ

1 голос
/ 06 июня 2011

Похоже, что я нашел ответ на этот вопрос. В процедуре [self currentToolbarItems] я помещаю UISegmentedControl в UIBarButtonItem. Если дважды использовать один и тот же UISegmentedControl для создания UIBarButtonItem и назначить его элементам панели инструментов, панель инструментов не показывает его. Поэтому вместо того, чтобы создавать UIBarButtonItem каждый раз с одним и тем же элементом управления, я снова его использую.

...