UISegmentedControl не отвечает на UIControlEventValueChanged в UIToolbar - PullRequest
0 голосов
/ 26 марта 2012

Я создал элемент управления с некоторыми элементами

NSArray *items = [NSArray arrayWithObjects: @"First", @"Second", @"Third",  nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:items];

Я добавил цель в элемент управления

[segmentedControl addTarget:self
                     action:@selector(controlTapped:)
           forControlEvents:UIControlEventValueChanged];

Чем я добавил свой сегментированный элемент управления на панель инструментов

[toolbar setItems:[NSArray arrayWithObject:
                          [[[UIBarButtonItem alloc]initWithCustomView:segmentedControl]autorelease]]];

В результате segmentedControl не отвечает на нажатие пользователем.

Вот пустой пустой метод

-(void) controlTapped:(id)sender {

}

1 Ответ

1 голос
/ 26 марта 2012

Есть похожий вопрос, который задавался и отвечал ранее (поэтому можно добавить UISegmentedControl на панель инструментов), но я думаю, что проблема здесь в том, что вы использовали неправильный метод для установки предметы. Я просмотрел документацию apple и не смог найти метод setItems:. Вместо этого используйте setItems:animated:.

EDIT- Я проверил это, сделав пример проекта, и он работал нормально. Я пытался с вашим кодом и с моими предложениями, и это работало в обе стороны! Используйте точку останова, чтобы убедиться, что элемент управления переходит (или не переходит) в метод controlTapped:.

...