3

我有一个选择器视图

[picker selectRow:3 inComponent:0 animated:YES];

当我在视图中编写此代码时确实加载了,

此方法用于将第 3 行设置为选取器中的默认行。

但我希望我选择的行下次设置为默认值。

该怎么办?提前致谢...

4

3 回答 3

4

像这样试试

NSUserDefaults *usrDefaults = [NSUserDefaults standardUserDefaults]; 

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

    [usrDefaults setInteger:row forKey:@"Index"];
}

[pickerView selectRow:[[NSUserDefaults standardUserDefaults]integerForKey:@"Index"] inComponent:0 animated:NO];
于 2012-03-07T12:15:17.150 回答
3

为什么不将最后按下的行保存在变量中,然后下次加载?

就像是:

    int myLastPressed;

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

        myLastPressed = row;

    }

您可以在代码中使用变量,也可以在 NSUSerDefaults 中使用全局变量

然后下一次:

[picker selectRow:myLastPressed inComponent:0 animated:YES];
于 2012-03-07T11:29:55.687 回答
1

这个问题非常不精确。你想让我做什么?

selectRow:inComponent:如果您想要选择特定的行,这正是您必须调用的。如果你想为下一个 appstart 保存选中的状态,你可以在 UserDefaults 中保存当前选中的行(用 读取selectedRowInComponent):[[NSUserdefault standardUserDefaults] saveInteger: selectedRow forKey @"savedSelectedPickerRowComponent1"]

于 2012-03-07T11:27:50.790 回答