ビューで 2 つの UIPicker を使用しています。最初のピッカーには 3 つのコンポーネントがあり、2 番目のピッカーには 1 つのコンポーネントがあります。しかし、アイテムを選択すると、最初のピッカーから正しいアイテムが表示されますが、選択した行に関係なく、常に2番目のピッカーから最初のアイテムが返されます。助けてください。
これが私が使用しているコードです。
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
if (pickerView == triplePicker)
return 3;
else {
return 1;
}
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (pickerView == triplePicker) {
if (component == kColorComponent)
return[colorList count];
if (component == kClarityComponent)
return[clarityList count];
return[shapeList count];
}
else{
return [listPickerItems count];
}
}
-(NSString *)pickerView:(UIPickerView *)pickerView
titleForRow:(NSInteger)row
forComponent:(NSInteger)component
{
if (pickerView == triplePicker) {
if (component == kColorComponent)
return [colorList objectAtIndex:row];
if (component == kClarityComponent)
return [clarityList objectAtIndex:row];
return [shapeList objectAtIndex:row];
}
else{
return [listPickerItems objectAtIndex:row];
}
}
ボタンが押されたイベントでは、2番目のピッカーが選択したアイテムを返すために次のようにしています:
NSInteger pickrow = [listPicker selectedRowInComponent:0];
NSString *picked = [listPickerItems objectAtIndex:pickrow];