尝试让双组件 UIPickerView 工作时,我遇到了同样的问题。正如有人建议的那样,不要使用 if 语句。
而是这样做:
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
self.valueA = [self.valuePickerView selectedRowInComponent:0];
self.valueB = [self.valuePickerView selectedRowInComponent:1];
self.valueLabel.text = [NSString stringWithFormat:@"%i:%i", self.valueA, self.valueB];
}
当然,如果您正在寻找数组的元素,只需使用“objectAtIndex:selectedRowInComponent:0”
不要这样做:
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if(component == 0){
self.valueA = ...;
}
else if (component == 1){
self.valueB = ...;
}
self.valueLabel.text = [NSString stringWithFormat:@"%i:%i", self.valueA, self.valueB];
}
希望这可以帮助其他为此苦苦挣扎的人。