我想在同一视图中使用两个选择器视图,其中第一个选择器视图属于类别,当选择一个类别时,其相应的值将添加到第二个选择器视图中。我怎样才能成功呢?值来自JSON。
答案 0 :(得分:3)
这很简单。您必须从数组中填充第二个选择器视图。
使视图控制器成为两个选择器视图的委托和数据源。
然后当' func pickerView(UIPickerView,didSelectRow:Int,inComponent:Int)'在第一个选择器视图中选择项目时调用delegate方法,更新第二个选择器视图的数据数组并在其上调用reloadAllComponents
这是一些代码
func pickerView(UIPickerView, didSelectRow: Int, inComponent: Int)
{
if (pickerView == self.firstPicker)
{
//calculate your data array for the second picker here
self.secondPickerView.reloadAllComponents()
}
}
答案 1 :(得分:1)
您可以在第一个选择器视图中选择值,如此
NSInteger row;
NSArray *firstPickerViewDataArray;
UIPickerView *firstPickerView;
NSString *selectedValue;
row = [firstPickerView selectedRowInComponent:0];
selectedValue = [firstPickerViewDataArray objectAtIndex:row];
从服务器或任何地方获取数据并将其存储到另一个数组中,如
NSArray * secondPickerViewDataArray;
之后,您可以使用以下方法显示值
- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
if (pickerView == secondPickerView){
// Do whatever you want based on selected value in first PickerView
return secondPickerViewDataArray[row];
}else{
//stuff for first pickerView
}
}