Iphone 为多个UIPickerView设置数据

Iphone 为多个UIPickerView设置数据,iphone,ios,uipickerview,Iphone,Ios,Uipickerview,我有两个UIPickerViews,其中的数据是从一个数组中提取的,尽管我似乎无法单独编程。以下是我在UIPickerViews中使用的代码: -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { return [treatments count]; } - (NSInteger)numberOfComponentsInPickerView:(UI

我有两个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"];
}
当我运行代码时,选择器显示相同的数据


提前感谢

您应该放一个BOOL来检查数据。创建一个名为treatment的BOOL,当第一个选择器可用时,将BOOL设置为YES,当第二个选择器可用时,将BOOL设置为NO。然后检查您的方法,查看哪个选择器是它们的选择器,并输入数据

@interface NotesViewController ()
{
    BOOL treatment; 
}

- (void)firstPickerComesUP
{
    treatment = YES;
} 

- (void)secondPickerComesUP
{
    treatment = NO;
} 

存储对两个picker视图的引用,并使用作为参数传递给datasource方法的UIPickerView来确定您正在使用的picker视图

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

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

当您运行该代码时会发生什么?两个数据采集器中都显示相同的数据?(护士或治疗)他们不是日期采集器,他们只是UIPicker,治疗数据在两者之间。这可能是因为他们处于有序状态。抱歉,虽然我对ios程序很陌生。谢谢,这让我走上了修复它的正确道路。我必须对他们所有人都这么做