填充与在同一视图的第一个选择器视图中选择的值相对应的第二个选择器
Populating second picker corresponding to the value selected in first picker view on same view
I want to use two picker views in same view where first picker view is of category and when a category is selected, its corresponding values are added to second picker view.我怎样才能让它成为可能?值取自 JSON.
这很简单。您必须从数组中填充第二个选择器视图。
让您的视图控制器成为两个选择器视图的委托和数据源。
然后当您 select 第一个选择器视图中的项目时调用 'func pickerView(UIPickerView, didSelectRow: Int, inComponent: Int)' 委托方法时,更新第二个选择器视图的数据数组并对其调用 reloadAllComponents
这是一些代码
func pickerView(UIPickerView, didSelectRow: Int, inComponent: Int)
{
if (pickerView == self.firstPicker)
{
//calculate your data array for the second picker here
self.secondPickerView.reloadAllComponents()
}
}
您可以像这样在第一个选择器视图中选择值
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
}
}
I want to use two picker views in same view where first picker view is of category and when a category is selected, its corresponding values are added to second picker view.我怎样才能让它成为可能?值取自 JSON.
这很简单。您必须从数组中填充第二个选择器视图。
让您的视图控制器成为两个选择器视图的委托和数据源。
然后当您 select 第一个选择器视图中的项目时调用 'func pickerView(UIPickerView, didSelectRow: Int, inComponent: Int)' 委托方法时,更新第二个选择器视图的数据数组并对其调用 reloadAllComponents
这是一些代码
func pickerView(UIPickerView, didSelectRow: Int, inComponent: Int)
{
if (pickerView == self.firstPicker)
{
//calculate your data array for the second picker here
self.secondPickerView.reloadAllComponents()
}
}
您可以像这样在第一个选择器视图中选择值
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
}
}