Я добавил a UISegmentedControl
в моем приложении. Ни одна из кнопок не нажимается в нормальном состоянии. Я хочу реализовать событие нажатия кнопки, когда первый сегмент выбран, и другое событие, когда другая кнопка нажата.
Если я правильно понимаю ваш вопрос, вам просто нужно реализовать метод целевого действия (поддерживаемый UIControl
, который является родительским классом UISegmentedControl
) для константы UIControlEventValueChanged
, точно так же, как в примере, приведенном в справочной документации UISegmentControl .
т.е.
[segmentedControl addTarget:self
action:@selector(action:)
forControlEvents:UIControlEventValueChanged];
используется для сообщения со следующей подписью:
- (void)action:(id)sender
или
[segmentedControl addTarget:self
action:@selector(action:forEvent:)
forControlEvents:UIControlEventValueChanged];
для
- (void)action:(id)sender forEvent:(UIEvent *)event
или
[segmentedControl addTarget:self
action:@selector(action)
forControlEvents:UIControlEventValueChanged];
для простейшего метода:
- (void)action
, которые являются стандартными типами селекторов целевого действия, используемых в UIKit.
Попробуйте этот,
UISegmentedControl * travelModeSegment = [[UISegmentedControl alloc] initWithItems:
[NSArray arrayWithObjects:NSLocalizedString(@"Driving", nil), NSLocalizedString(@"Walking", nil), nil]];
[travelModeSegment setFrame:CGRectMake(9.0f, 0.0f, 302.0f, 45.0f)];
[cell addSubview:travelModeSegment];
[travelModeSegment release];
потом напишите действие,
if (travelModeSegment.selectedSegmentIndex == 0) {
//write here your action when first item selected
} else {
//write here your action when second item selected
}
надеюсь это вам поможет
Вы можете прикрепить обработчик в IB к событию изменения значения: UIControlEventValueChanged
или сделать это в коде:
[segmentedControl addTarget:self
action:@selector(action:)
forControlEvents:UIControlEventValueChanged];