如何在单视图控制器中创建两个多UIPickerview

时间:2010-12-11 14:54:07

标签: iphone

我需要使用不同的输入值动态创建两个UIPickers。

我在谷歌找不到正确的解决方案。

任何人都可以发布一些代码。

提前感谢你。

1 个答案:

答案 0 :(得分:4)

有两种方法。

a)首先,使视图控制器成为两个选择器的委托和数据源。然后在视图控制器的实现中执行以下操作:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return ( pickerView == picker1 ? 2 : 3 );
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    NSArray *values = ( pickerView == picker1 ? values1 : values2 );
    return [values count];
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    NSArray *values = ( pickerView == picker1 ? values1 : values2 );
    return [values objectAtIndex: row];
}

请注意,您将pickerView参数与指向您的某个选择器视图的实例变量进行比较,并“动态”决定为每个选择器视图返回哪些值。​​

b)为每个选择器视图分配不同的数据源和委托(它们可能是实现UIPickerViewDelegate和UIPickerViewDataSource协议的任何对象,不一定是视图控制器)。