2016-09-29 1 views
0

Я хочу использовать два вида выбора в том же представлении, где первый вид сборщика относится к категории и когда выбрана категория, его соответствующие значения добавляются во второй сборщик Посмотреть. Как я могу сделать это возможным? Значения взяты из JSON.Заполняющий второй сборщик, соответствующий значению, выбранному в первом представлении выбора, на том же самом представлении

ответ

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

Это довольно просто. Вы должны заполнять свой второй выборщик из массива.

Сделайте свой контроллер просмотра делегатом и источником данных для обоих видов выбора.

Затем, когда вы выбираете элемент в первом представлении сборщика, выбираете элемент данных для второго представления сборщика и вызываете reloadAllComponents, когда используется метод делегата func pickerView (UIPickerView, didSelectRow: Int, inComponent: Int) это

Вот код

func pickerView(UIPickerView, didSelectRow: Int, inComponent: Int) 
{ 
    if (pickerView == self.firstPicker) 
    { 
     //calculate your data array for the second picker here 
     self.secondPickerView.reloadAllComponents() 
    } 
} 
+0

да второй вид заселяется с массивом, вопрос, если я выбираю объект в индексе 1 в представлении первого выбора, тогда массив данных во втором сборщике извлекается только из этого объекта. –

Смежные вопросы