Заполните UIPickerView значением массива - PullRequest
3 голосов
/ 06 июня 2011

Я работаю над проектом, в котором мне нужно выполнить следующие две работы: 1.) Получить значение из CoreData и сохранить его в NSMutableArray .2.) Возьмите UIPickerView и заполните его значением массива.

Проблема в том, что размер массива является динамическим, и я могу заполнить значение массива в UIPickerView .может кто-нибудь мне помочь.

Ответы [ 2 ]

10 голосов
/ 06 июня 2011

для правильной работы UIPickerView необходимо указать количество компонентов (столбцов) и количество строк для каждого компонента при каждой его перезагрузке: как уже упоминалось, используйте [myPickerView reloadAllComponents]; для перезагрузки представления после заполнения массива, но вы ДОЛЖНЫ также реализовать эти вещи после того, как вы объявите содержащий контроллер класса представления как <UIPickerViewDelegate>, связывает средство выбора с владельцем файла как делегат, а затем:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
   return 1;// or the number of vertical "columns" the picker will show...
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    if (myLoadedArray!=nil) {
        return [myLoadedArray count];//this will tell the picker how many rows it has - in this case, the size of your loaded array...
    }
    return 0;
}

 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
//you can also write code here to descide what data to return depending on the component ("column")
        if (myLoadedArray!=nil) {
            return [myLoadedArray objectAtIndex:row];//assuming the array contains strings..
        }
        return @"";//or nil, depending how protective you are
    }
1 голос
/ 06 июня 2011

После обновления значения (вставка или изменение существующего) в вашем массиве.

Позвоните reloadAllComponents на ваш UIPickerView экземпляр.

- (void)reloadAllComponents

Используйте как показано ниже

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