如何将UIPickerView的第二行保存到NSUserDefaults? [英] How can I save a second row of UIPickerView to NSUserDefaults?

查看:79
本文介绍了如何将UIPickerView的第二行保存到NSUserDefaults?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两行的pickerView,我需要将两者的位置都保存到NSUserDefaults中.我已经使用以下代码成功保存了第一行:

I have pickerView with two rows and I need to save position of both to NSUserDefaults. I have successful saved first row with this code:

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {    
    NSInteger selectedRow = [thePickerView selectedRowInComponent:0];

    [[NSUserDefaults standardUserDefaults] setInteger:selectedRow forKey:@"picker"];
}

我不知道如何添加第二个.

And I don't get how to add a second one.

使用此代码,我可以重新定位:

With this code I bring back the position:

-(void)viewWillAppear: (BOOL) animated {
    NSUserDefaults *pickerViewSelectionDefaults = [NSUserDefaults standardUserDefaults];
[picker selectRow:[pickerViewSelectionDefaults integerForKey:@"picker"] inComponent:0 animated:YES];
[picker selectRow:[pickerViewSelectionDefaults integerForKey:@"picker"] inComponent:1 animated:YES];
}

推荐答案

尝试一下:

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row
             inComponent:(NSInteger)component {    
    NSInteger selectedRow = [thePickerView selectedRowInComponent:component];
    NSString *key = [NSString stringWithFormat:@"picker%d", component];

    [[NSUserDefaults standardUserDefaults] setInteger:selectedRow forKey:key];
}

还有这个

-(void)viewWillAppear: (BOOL) animated {
    NSUserDefaults *pickerViewSelectionDefaults = [NSUserDefaults standardUserDefaults];
    [picker selectRow:[pickerViewSelectionDefaults integerForKey:@"picker0"] 
        inComponent:0 animated:YES];
    [picker selectRow:[pickerViewSelectionDefaults integerForKey:@"picker1"] 
        inComponent:1 animated:YES];
}

这篇关于如何将UIPickerView的第二行保存到NSUserDefaults?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆