设置多个UIPickerView的数据

Oll*_*lie 2 iphone uipickerview ios

我有两个UIPickerViews从数组中提取数据虽然我似乎无法单独编程.这是我用于UIPickerViews的代码:

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    return [treatments count];
}

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

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
      return[[treatments objectAtIndex:row]valueForKey:@"treatmentName"];
}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    _buttonText.text = [[treatments objectAtIndex:row]valueForKey:@"treatmentName"];
    if (![_buttonText.text isEqual: @"Pick a Treatment Name"]) {
        _buttonText.textColor = [UIColor blackColor];
    }
}

-(NSInteger)nursePicker:(UIPickerView *)nursePicker numberOfRowsInComponent:(NSInteger)component {
    return [nurses count];
}

- (NSString *)nursePicker:(UIPickerView *)nursePicker titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return[[nurses objectAtIndex:row]valueForKey:@"nurseName"];
}
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,选择器显示相同的数据

提前致谢

Kev*_*vin 7

存储对两个选择器视图的引用,并使用作为参数传递给数据源方法的UIPickerView,以确定您正在使用哪个选择器视图.

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
    if (pickerView == self.nursePicker) {
        return [nurses count];
    }
    else if (pickerView == self.treatmentPicker) {
        return [treatments count];
    }
}
Run Code Online (Sandbox Code Playgroud)

每个数据源方法都有相同的想法