UISegmentedControl выбранный индекс всегда 0 - PullRequest
5 голосов
/ 05 июля 2011

У меня есть UISegmentedControl, который имеет 6 сегментов, которые я создал в Интерфейсном Разработчике. Я вызываю следующий метод при изменении значения:

-(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;
    }
}

Всякий раз, когда я меняю сегменты, selectedSegmentIndex is always 0. Почему это?

Ответы [ 3 ]

20 голосов
/ 05 июля 2011

Весьма вероятно, что IBOutlet не подключен. Проверь это. Вы также можете использовать sender, передаваемый методу.

UISegmentedControl * segmentedControl = (UISegmentedControl *)sender;
switch (segmentedControl.selectedSegmentIndex) {
    ....
4 голосов
/ 05 июля 2011

привет, попробуй вот так будет работать

-(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;
}

}

0 голосов
/ 05 августа 2015

Возьмите розетку для UISegmentedControl и справитесь с этим,

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];

       }

Надеюсь, это кому-нибудь поможет.

...