У меня есть приложение на основе основных данных, над которым я работаю, которое использует EditingViewController для управления рядом различных элементов пользовательского интерфейса, которые получают данные от пользователя, которые описывают атрибуты объекта, который впоследствии сохраняется в моем приложении. Файл EditingViewController.xib содержит такие элементы, как datePicker, textField, numberSlider и где моя проблема исходит из UIPickerView, которые все управляются в одном представлении с помощью выражений .hidden = YES/NO;
. Моя проблема в том, что мне нужно заполнить UIPickerView на двух отдельных экранах, которые должны иметь два разных источника NSMutableArray. Внутри моего метода viewDidLoad я установил свой первый NSMutableArray:
listOfItems = [[NSMutableArray alloc] init];
[listOfItems addObject:@"Greenland"];
[listOfItems addObject:@"Switzerland"];
[listOfItems addObject:@"Norway"];
[listOfItems addObject:@"New Zealand"];
[listOfItems addObject:@"Greece"];
[listOfItems addObject:@"Rome"];
[listOfItems addObject:@"Ireland"];
И после этого я заполняю свой UIPickerView * с помощью этого кода:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)picker;
{
return 1;
}
- (void)pickerView:(UIPickerView *)picker didSelectRow:(NSInteger)row inComponent: (NSInteger)component
{
label.text= [listOfItems objectAtIndex:row];// The label is simply setup to show where the picker selector is at
}
- (NSInteger)pickerView:(UIPickerView *)picker numberOfRowsInComponent:(NSInteger)component;
{
return 8;//[listOfItems count];
}
- (NSString *)pickerView:(UIPickerView *)picker titleForRow:(NSInteger)row forComponent: (NSInteger)component;
{
return [listOfItems objectAtIndex:row];
}
И это прекрасно работает для первого атрибута и массива. Итак, после этого, когда выбран другой uitableviewcell, сборщик скрыт picker.hidden = YES;
, и мне нужен другой сборщик, picker2 появляется с другим массивом информации. Но когда я пытаюсь продублировать процесс, настраивая новый сборщик, вызывая его picker2 и пытаясь заполнить его другим массивом NSMutableArray, который я создал рядом с первым (опять же, все потому, что в моем EditingViewController это все часть одного и того же представления, просто вызывая различные элементы пользовательского интерфейса в зависимости от представления) Я не могу заставить picker2 заполнить новый массив. Я не знаю, как настроить его так, чтобы мои два разных массива могли быть заполнены. Нужны ли мне два вида сборщика? Это может быть сделано только с одним? Каков правильный синтаксис в методе - (NSString *)pickerView:(UIPickerView *)picker titleForRow:(NSInteger)row forComponent: (NSInteger)component;
, чтобы сделать два массива видимыми по отдельности? Я надеюсь, что кто-то может помочь мне в этом, заранее спасибо!