Я пишу код для программного создания представления.В этом представлении я создаю два UIPickerView, однако, как объясняется в заголовке, когда я собираюсь заполнить списки данными, все данные попадают во вторую таблицу, а ни в одну в первую.Я могу видеть, где именно проблема, но не знаю, как ее исправить.Вот код с редактированием вокруг несвязанных частей.
в следующем разделе я создаю окно выбора.По сути, у меня есть большой список данных.Если я вижу какое-либо вхождение «RadioButton», я создаю PickerView.RadioButton может появляться несколько раз, и именно в этом заключается моя проблема.
for(int i = 0; i < [list count]; i++){
...
else if([input.controlTypeName compare:@"RadioButton"] == NSOrderedSame){
[radioList addObject:input.sourceText];
radioPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(50, y, 220, 200)];
radioPicker.delegate = self;
radioPicker.showsSelectionIndicator = YES;
[inputsView addSubview:radioPicker];
y = y+220;
}
методы делегата следующие:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component {
// Handle the selection
}
// tell the picker how many rows are available for a given component
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
if([pickerView isEqual: radioPicker]){
return [radioList count];
}
// tell the picker how many components it will have
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 1;
}
// tell the picker the title for a given component
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if([pickerView isEqual: radioPicker]){
id myArrayElement = [radioList objectAtIndex:row];
NSString *title = myArrayElement;
NSLog(@"title to fill radio:%@", title);
return title;
}
}
// tell the picker the width of each row for a given component
- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
int sectionWidth = 200;
return sectionWidth;
}
По сути, то, что, похоже, происходит, происходит во 2-м созданиииз ListPicker 'RadioButton', первое создание теряет тег 'radioPicker', и строка
if([pickerView isEqual: radioPicker]){
завершается неудачей.Таким образом, все данные помещаются во второе (и последнее) создание.Но я не знаю, как этого не произошло.Любые идеи будут великолепны.
Спасибо.