Два PickerView с разными значениями - PullRequest
0 голосов
/ 23 ноября 2011

Это мой код для двух представлений выбора в одном контроллере представления. Однако это не работает для меня.

#pragma mark UIPickerViewDelegate methods
    //PickerViewController.m
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
        return 1;
    }

    - (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {

        switch ([thePickerView tag]) {
            case 1: //purpose picker        
                return [m_arrPurpose count];            
            case 2:  //second picker
                return [m_arrSweep count];
            default:
                return 0;
                break;
        } 
    }

    - (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

        switch ([thePickerView tag]) {
            case 1: //purpose picker
            {
                //cost.text = @"Test";
                Purpose *prp = [m_arrPurpose objectAtIndex:row];
                return [prp m_purposeName];     
            }       
            case 2:  //second picker
            {
                OpenActivity *opn = [m_arrSweep objectAtIndex:row];
                return [opn m_ahhaName];
            }
            default:
                return @"";
                break;
        }
}

может any1 помочь мне с этим, пожалуйста .. спасибо

Ответы [ 2 ]

0 голосов
/ 28 ноября 2011

С этой проблемой не было ничего плохого в моем коде. Просто я забыл установить значение тега на 1 и 2 в XIB.

0 голосов
/ 23 ноября 2011

Похоже, либо ваши теги установлены неправильно, либо вы не подключили источник данных и методы делегата для обоих сборщиков.

Добавьте некоторые операторы NSLog в методы numberOfRowsInComponent и titleForRow :.

Включение объекта просмотра средства выбора и тега представления средства выбора в журнал, например,

NSLog(@"Rows in component for %@, tag %d",thePickerView,[thePickerView tag]);

И другой текст в заголовке ForRow.

Вы должны увидеть два разных объекта - если нет, ваш делегат и источник данных не связаны. Вы должны увидеть теги 1 и 2 - если нет, ваши теги установлены неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...