Проблема с двойным (двухкомпонентным) видом сборщика - PullRequest
2 голосов
/ 08 февраля 2012

Я работаю с двойным (двухкомпонентным) представлением выбора. Когда я запускаю, он показывает мне двойное представление выбора, но ту же информацию в строках обоих компонентов.

Вот код, надеюсь, вы мне поможете.
Я хочу показать в первом компоненте массив1, а во втором компоненте массив2.

- (void)viewDidLoad {
    NSArray *FirstArray1 = [[NSArray alloc] initWithObjects:
      @"White",@"Whole Wheat",@"Rye",@"Sourdough",@"Seven Grain", nil];
    self.Array1 = FirstArray1;

    NSArray *FirstArray2 = [[NSArray alloc] initWithObjects:
      @"Turkey",@"Peanut Butter",@"Tuna Salad",@"Chicken Salad",@"Roast Beef",
      @"Vegemite",nil];
    self.Array2 = FirstArray2;

    [super viewDidLoad];
 }

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}

-(NSInteger)pickerView:(UIPickerView *)pickerView
    numberOfRowsInComponent:(NSInteger)component
{
    return[self.Array1 count];
    return[self.Array2 count];
}

-(NSString *)pickerView:(UIPickerView *)pickerView
    titleForRow:(NSInteger)row
    forComponent:(NSInteger)component 
{
    return [self.Array1 objectAtIndex:row];
    return [self.Array2 objectAtIndex:row];
}

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012
-(NSInteger)pickerView:(UIPickerView *)pickerView
    numberOfRowsInComponent:(NSInteger)component
{
if (component == 0) {
    return[self.Array1 count];
} else if (component == 1) {
    return[self.Array2 count];
} 
return 0;
}
1 голос
/ 25 января 2016

Вот как мне нравится управлять вещами ...

let pickerData = [["column1_1","column1_2","column1_3","column1_4"],
                  ["column2_1","column2_2","column2_3","column2_4"]]

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return pickerData[component].count
}

Номер компонента ссылается на массив, красивый и простой.

...