我在单个视图控制器中有两个采摘器。他们使用两个NSArray作为他们的数据。
问题在于,对于两个选择器,当调用titleForRow方法时,组件参数的值始终为零,因此所有行都显示其数据数组中的第一个字符串。
为什么会发生这种情况,我该如何解决?
这些是我的委托方法:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
NSLog(@"%d",[pickerView tag]);
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component
{
NSLog(@"%d",[pickerView tag]);
if ([pickerView tag] == 0)
return providersList.count;
else
return amountList.count;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSLog(@"%d, %d",[pickerView tag],component);
if ([pickerView tag] == 0)
return [providersList objectAtIndex:component];
else
if ([pickerView tag] == 1)
return [amountList objectAtIndex:component];
else
return nil;
}
使用xcode 4.3和iOS5。
答案 0 :(得分:0)
组件用于拾取器中的多个节,行用于组件中的特定行。当您的选择器有多个部分时,您将收到组件的不同值。行指示组件中的行。
因此,如果您只有一个组件,那么您应该使用row。
[amountList objectAtIndex:row];