UIPickerView и NSUserDefaults проблема - PullRequest
0 голосов
/ 08 августа 2010

У меня есть UIPickerView с 2 компонентами. Я хотел бы сохранить выбор пользователя и применить его в следующий раз, когда снова отображается pickerView.

Вот мой код:


    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

    NSUserDefaults *pickerViewSelectionDefaults = [NSUserDefaults standardUserDefaults];
    [pickerViewSelectionDefaults setInteger:row forKey:@"pickerViewSelectionKey"];
    [pickerViewSelectionDefaults synchronize];

}

}

И ...


- (void)viewWillAppear:(BOOL)animated { 

    NSUserDefaults *pickerViewSelectionDefaults = [NSUserDefaults standardUserDefaults];
    [pickerView selectRow:[pickerViewSelectionDefaults integerForKey:@"pickerViewSelectionKey"] inComponent:0 animated:YES];

}

Спасибо!

1 Ответ

0 голосов
/ 08 августа 2010

Я не понимаю, в чем твоя настоящая проблема. Ваш код должен работать, учитывая, что вы вращаете только компонент 0, а не 1. Существует проблема с сохранением строки для двух компонентов в одном параметре. Если вы повернете компонент 1 в строку 20, а затем загрузите представление, скорее всего, произойдет сбой, если компонент 0 также не будет иметь 20 строк.

Пожалуйста, предоставьте сообщение об ошибке или что-то, что указывает на то, что не так. Также убедитесь, что ваш метод viewWillAppear действительно вызван.

...