在同一个视图控制器中的两个UI采集器Objective C?

所以我得到了我的用户界面select器,但它显示相同的数据为每个用户界面select器,但我希望它显示在一个用户界面中的胡子arrays和颜色之一。 目前在图像中显示的是将相同的数据分配给每个arrays。

- (void)viewDidLoad { [super viewDidLoad]; _colourSourceArray = [[NSArray alloc] initWithObjects:@"No Frame",@"Red", @"Green", @"Blue", @"Black",@"Yellow", nil ]; _MustacheArray = [[NSArray alloc]initWithObjects:@"None",@"Pencil",@"The Professor",@"The Regent",@"Hipster",@"Super Mario", nil]; [_picker selectRow:0 inComponent:0 animated:YES]; [_notcolourpicker selectRow:1 inComponent:0 animated:YES]; _picker.tag=0; _notcolourpicker.tag=1; } - (NSInteger)numberOfComponentsInPickerView: (UIPickerView *)pickerView { return 1; } - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { switch (component) { case 0: return _colourSourceArray.count; break; case 1: return _MustacheArray.count; default: break; } return 0; } - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { switch (component) { case 0: return [_colourSourceArray objectAtIndex:row]; break; case 1: return [_MustacheArray objectAtIndex:row]; default: break; } return 0; } -(IBAction)returnToExportSettingsVC:(UIStoryboardSegue *)segue { // Nothing needed here. } -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { if (component == 0) { NSLog(@"First"); NSString *s = _colourSourceArray[row]; _selectedcolour = s; NSLog(_selectedcolour); } else if(component == 1){ NSLog(@"Second"); NSString *d = _MustacheArray[row]; _selectedmustache=d; NSLog(_selectedmustache); } /// Used if you wist to assign the selected row to a label to show a users selection. //_label.text= [_MustacheArray objectAtIndex:[mostachepicker selectedRowInComponent:1]]; } 

在这里输入图像说明

问题是两个select器视图调用相同的数据源/委托方法。 如果你要这样构造你的代码,你将需要检查pickerView参数来查看这是哪个select器视图,并打开它。