Setting data for multiple UIPickerView

ios, iphone, uipickerview

Solution

Store a reference to your two picker views and use the UIPickerView that is passed as an argument to the datasource methods in order to determine which picker view you are using.

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

Same idea for every datasource method

Problem

I have two UIPickerViews With data being pulled from an array though I can't seem to program them separately. Here is the code that I am using for my 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"]; } ``` When I run the code the pickers show the same data Thanks in advance

Original source