Как изменить ряды подборщика на основе выбора другого сборщика? - PullRequest
0 голосов
/ 19 января 2012

У меня два сборщика - страна и регион.Мне нужно заполнить область выбора региона на основе строки, выбранной в окне выбора страны.У меня есть массивы для заполнения обоих сборщиков.Мне нужна помощь, чтобы изменить строки выбора региона в зависимости от выбора страны выбора.Любая помощь будет принята с благодарностью.Заранее большое спасибо.

Ответы [ 4 ]

2 голосов
/ 19 января 2012

Хорошо. У вас есть два сборщика, скажем, countryPicker и regionPicker.

в методе делегата для UIPickerView добавить одно условие

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{ 
    NSString *pickerTitle = @"";
    if (pickerView == countryPicker)
    {
        pickerTitle =  [countryFeeds objectAtindex:row];
        //assigns the country title if pickerView is countryPicker
    }
    else if (pickerView == regionPicker)
    {
        pickerTitle =  [regionFeeds objectAtindex:row];
        //assigns the region title if pickerView is regionPicker
    }

    return pickerTitle;
}
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if (pickerView == countryPicker)
    {
        //selects the region corresponding to the selected country.
        //totalRegions is a NSDictionary having country names as keys and array of their regions as values
        regionFeeds = [totalRegions objectForKey:[countryFeeds objectAtindex:row]];

        //Now reloading the regionPicker with new values.
        [regionPicker reloadAllComponents];
    }
    else if (pickerView == regionPicker)
    {
        // your code to select a region
    }
}

Я надеюсь, что это решит вашу проблему :)
BR, Hari

1 голос
/ 19 января 2012

Являются ли они отдельными представлениями средства выбора или одним представлением средства выбора с двумя столбцами?

В любом случае, когда вы изменяете значение в одном устройстве выбора, просто вызовите reloadAllComponents для другого средства выбора (или reloadComponent: если вы используетеразделитель), а затем, когда он перезагружает данные из своего источника данных, вы можете использовать значение из первого средства выбора для предоставления правильного списка регионов.

0 голосов
/ 19 января 2012
  NSUInteger selectedRow= [CountryPicker selectedRowInComponent:0];

    NSString *userchoice =[self pickerView:CountryPicker titleForRow:selectedRow forComponent:0];

Это даст вам заголовок для выбранной строки пользователем в окне выбора страны

затем, используя массивы, вы должны заполнить названия регионов Вы можете использовать

- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated

на RegionPicker

0 голосов
/ 19 января 2012

Я предлагаю сохранить страну и регион в одном сборщике с двумя компонентами (страна, регион). Если вам это нужно, то мы можем изменить значения одного компонента на основе значения другого компонента.

...