So ive bekam meine UI-Picker, aber es zeigt die gleichen Daten für jede der UI-Picker, aber ich möchte es das Schnurrbart-Array in einem ui Picker und die Farbe in der anderen anzeigen. Derzeit im Bild gezeigt, weist es jedem Array die gleichen Daten zu.Zwei UI-Picker in demselben View-Controller Objective C?
- (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]];
}
Fügen Sie der Pickeransicht in Ihrem Storyboard einfach ein 'Tag' hinzu und überprüfen Sie dann beim Zurückgeben der Daten aus der Datenquelle, welcher Picker die Daten anfordert, indem Sie' if picker.tag == 1 {...} else if picker.tag == 2 {...} ' – sbarow