我有两行的pickerView,我需要将两者的位置保存到NSUserDefaults。我用这段代码成功保存了第一行:
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
NSInteger selectedRow = [thePickerView selectedRowInComponent:0];
[[NSUserDefaults standardUserDefaults] setInteger:selectedRow forKey:@"picker"];
}
我不知道如何添加第二个。
通过这段代码我带回了位置:
-(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];
}
答案 0 :(得分:2)
试试这个:
- (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];
}
答案 1 :(得分:0)
使用单独的键添加它们。
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent: (NSInteger)component {
NSInteger selectedRow = [thePickerView selectedRowInComponent:0];
[[NSUserDefaults standardUserDefaults] setInteger:selectedRow forKey:@"pickerRow1"];
[[NSUserDefaults standardUserDefaults] setInteger:selectedRow forKey:@"pickerRow2"];
}