UIPickerView не перезагружается до прокрутки - PullRequest
2 голосов
/ 18 января 2012

Используя элемент управления сегментами, я пытаюсь перезагрузить 2 UIPickerViews с новым массивом данных.

Моя проблема в том, что новый массив не отображается, пока я не прокручиваю вверх или вниз на средстве выбора (старые данные исчезнут, как только они исчезнут) Я попытался использовать метод reloadAllComponents, но безуспешно. Вот как выглядит код:

//Segment Control
-(IBAction)unitType:(id)sender {
    if([sender selectedSegmentIndex]==0){
        NSLog(@"unitType change 1");
        NSLog(@"before values = %@",units);
        [units removeAllObjects];
        [units addObject:@"in"];
        //etc.
        [self.inputUnits reloadAllComponents];
        NSLog(@"current values = %@",units);
    }else {
        NSLog(@"unitType change 2");
        NSLog(@"before values = %@",units);
        [units removeAllObjects];
        [units addObject:@"in^3"];
        //etc.
        [self.inputUnits reloadAllComponents];
        NSLog(@"current values = %@",units);
    }
}

IB имеет 2 UIPickerViews, связанных с владельцем файла для делегата и источника данных.

1 Ответ

5 голосов
/ 18 января 2012

Вы не подключили UIPickerView к вашему inputUnits свойству. Таким образом, ваш звонок на -reloadAllComponents отправляется на nil, и все обновляется только тогда, когда pickerView хочет показать что-то новое (что происходит при прокрутке).

...