2010-07-08 5 views
7

Это, наверное, очень простой вопрос, но я не могу найти ничего в API или любой поисковой системе.UISegmented Contol установлен в Momentary Handler

У меня есть сегментированный элемент управления, который я установил на мгновение, так как пользователь выберет пару марок автомобиля, которые они хотят найти. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу понять, как распознать, какой сегмент был выбран. В обычном режиме это простой SelectedSegment = index, но с мгновенным его пониманием того, что выбранный сегмент всегда равен -1, поскольку ни один из них не выбран «0»

У меня есть обработчик для ValueChanged, но я не могу понять, m проверка или что я должен отправлять, чтобы определить, какой сегмент был выбран. Любая помощь будет принята с благодарностью. Я использую monotouch, но Obj-C тоже будет хорошо.

Спасибо!

ответ

10

В обработчике, вы должны проверить selectedSegmentIndex, чтобы определить, какой сегмент был выбран:

- (void)valueChanged:(UISegmentedControl *) control { 
    switch([control selectedSegmentIndex]) { 
     case 0: 
     //... 
     break; 
     case 1: 
     //... 
     break; 
    } 
} 
+2

Это правильно. UISegmentedControl отслеживает только последний элемент *, который был выбран, а не * все * выбранные в данный момент элементы. Вы должны будете сохранить текущий выбранный список в своем собственном объекте. –

+0

Awesome, Спасибо за помощь! – Adam

+3

Ничего себе, это действительно работает. [Apple documentation] (http://developer.apple.com/library/ios/documentation/uikit/reference/UISegmentedControl_Class/Reference/UISegmentedControl.html#//apple_ref/occ/instp/UISegmentedControl/selectedSegmentIndex), похоже, указывает на это не будет. «UISegmentedControl игнорирует это свойство, когда элемент управления находится в мгновенном режиме». Но selectedSegmentIndex действительно дает хорошее значение, поэтому работает для меня. –

Смежные вопросы