Sheehan Alam
Sheehan Alam

Reputation: 60869

UISegmentedControl selected index always 0?

I have a UISegmentedControl that has 6 segments which I created in Interface Builder. I am calling the following method on value changed:

-(IBAction)segmentedChartButtonChanged:(id)sender
{
    switch (self.segmentedChartButton.selectedSegmentIndex) {
        case 0:
            NSLog(@"5d selected. Index: %d", self.segmentedChartButton.selectedSegmentIndex);
            break;
        case 1:
            NSLog(@"3m selected. Index: %d", self.segmentedChartButton.selectedSegmentIndex);
            break;
        default:
            break;
    }
}

Whenever I change the segments, the selectedSegmentIndex is always 0. Why is this?

Upvotes: 6

Views: 13714

Answers (3)

Narasimha Nallamsetty
Narasimha Nallamsetty

Reputation: 1263

Take an outlet for UISegmentedControl and handle with that like this,

if (self.paymentSegmentButton.selectedSegmentIndex ==0)
{
    NSLog(@"first view ");

}
else
{
    NSLog(@"payment initiation");
    addVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"secondView"];

    [self.navigationController pushViewController:addVC animated:YES];

       }

I hope it helps someone.

Upvotes: 0

ajay
ajay

Reputation: 3345

hi try like this it will work

-(IBAction)segmentedChartButtonChanged:(id)sender
 {
 UISegmentedControl *segment=(UISegmentedControl*)sender;
switch (segment.selectedSegmentIndex) {
    case 0:
        NSLog(@"5d selected. Index: %d", self.segmentedChartButton.selectedSegmentIndex);
        break;
    case 1:
        NSLog(@"3m selected. Index: %d", self.segmentedChartButton.selectedSegmentIndex);
        break;
    default:
        break;
}

}

Upvotes: 4

Deepak Danduprolu
Deepak Danduprolu

Reputation: 44633

It is very likely that the IBOutlet isn't connected. Check that. You can also use the sender that is passed to the method.

UISegmentedControl * segmentedControl = (UISegmentedControl *)sender;
switch (segmentedControl.selectedSegmentIndex) {
    ....

Upvotes: 20

Related Questions