Define click event for UISegmentedControl

Warrior picture Warrior · Jun 15, 2010 · Viewed 75.5k times · Source

I have added a UISegmentedControl in my application. None of the buttons are selected in normal state. I want to implement a button click event when the first segment is selected, and another event when another button is clicked.

Answer

macbirdie picture macbirdie · Jun 15, 2010

If I understand your question correctly, you simply have to implement a target-action method (supported by UIControl which is UISegmentedControl's parent class) for the constant UIControlEventValueChanged, exactly like in the example given in UISegmentControl's reference documentation.

i.e.

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

used for a message with the following signature:

- (void)action:(id)sender

or

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

for

- (void)action:(id)sender forEvent:(UIEvent *)event

or

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

for the simplest method:

- (void)action

which are standard types of target-action selectors used in UIKit.