Search code examples
iosxcodeuipickerview

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. How can I make it possible? Values are taken from JSON.


Solution

  • You can get value selected in first picker view like this

    NSInteger row;
    NSArray *firstPickerViewDataArray;
    UIPickerView *firstPickerView;
    NSString *selectedValue;
    
    row = [firstPickerView selectedRowInComponent:0];
    selectedValue  = [firstPickerViewDataArray objectAtIndex:row];
    

    Get the data from server or wherever you want and store that into another array like

    NSArray * secondPickerViewDataArray;
    

    After that you can use below method to show values

        - (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
             }
                }