我有一个选择器视图
[picker selectRow:3 inComponent:0 animated:YES];
当我在视图中编写此代码时加载了
此方法用于将第3行设置为选择器中的默认行。
但我希望我选择的行在下次设置为默认值。
该怎么办?提前谢谢......
答案 0 :(得分:3)
为什么不在变量中保存最后按下的行并在下次加载它?
类似的东西:
int myLastPressed;
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
myLastPressed = row;
}
您可以在代码中使用变量,也可以在NSUSerDefaults中使用全局变量
然后下一次:
[picker selectRow:myLastPressed inComponent:0 animated:YES];
答案 1 :(得分:3)
试试这个
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];
答案 2 :(得分:1)
这个问题非常贴心。你想做什么?
如果您想要选择特定行, selectRow:inComponent:
正是您必须调用的内容。
如果要保存下一个appstart的选定状态,可以在UserDefaults中保存当前选定的行(使用selectedRowInComponent
读取):[[NSUserdefault standardUserDefaults] saveInteger: selectedRow forKey @"savedSelectedPickerRowComponent1"]