【问题标题】:UIPickerView and NSUserDefaults issueUIPickerView 和 NSUserDefaults 问题
【发布时间】:2010-08-08 14:24:39
【问题描述】:

我有一个包含 2 个组件的 UIPickerView。 我想保存用户的选择并在下次再次显示 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];

}

谢谢!

【问题讨论】:

    标签: uipickerview nsuserdefaults


    【解决方案1】:

    我不明白你真正的问题是什么。您的代码应该可以工作,因为您只旋转组件 0 而不是 1。将两个组件的行存储到一个设置中存在问题。如果将组件 1 旋转到第 20 行,然后加载视图,除非组件 0 也有 20 行,否则它很可能会崩溃。

    请提供错误消息或指示错误的内容。还要确保实际调用了您的 viewWillAppear 方法。

    【讨论】:

    • 问题是即使使用这个NSUserDefaults代码,每次显示pickerView时,两个组件中的选定索引都是0。谢谢你的帮助
    • 你确定 viewWillAppear 被调用了吗?还要确保在执行 viewWillAppear 时选择器项已被填充。
    猜你喜欢
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    相关资源
    最近更新 更多