我需要使用不同的输入值动态创建两个UIPickers。
我在谷歌找不到正确的解决方案。
任何人都可以发布一些代码。
提前感谢你。
答案 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协议的任何对象,不一定是视图控制器)。