I want to create an app including Segment Control and a label, change the label when the control is pressed.
I want to use “sender” to get the value of the segment control but why it’s not working?
-(void)segmentControlIndexChanged:(id)sender
{
switch ([sender selectedIndex]) {
case 0:
label.text = @"Case Zero :)";
break;
case 1:
label.text = @"Happy New Year!";
break;
default:
label.text = @"Press a button:";
break;
}
}
Other trouble:
the code below causes:
-[ViewController segmentControlIndexChanged:]: unrecognized selector sent to instance
//ViewController.h
@interface ViewController : UIViewController {
IBOutlet UILabel *label;
IBOutlet UISegmentControl *segmentControl;
}
@property (retain, nonatomic) UILabel *label;
@property (retain, nonatomic) UISegmentControl *segmentControl;
–
//ViewController.m
-(IBAction)segmentControlIndexChanged
{
switch ([segmentControl selectedSegmentIndex]) {
case 0:
label.text = @"X'mas always come first :)";
break;
case 1:
label.text = @"Happy New Year!";
break;
default:
label.text = @"Press a button:";
break;
}
}
It does not work because
UISegmentedControlhasselectedSegmentIndexproperty, notselectedIndex:Sometimes, Xcode lets you pick a wrong method; when you are not certain of the exact name, consult developer documentation available online and through Xcode’s Help/Documentation and API Reference.