【问题标题】:How to select/set a selected row in picker view as default selected row every time如何每次选择/设置选择器视图中的选定行作为默认选定行
【发布时间】:2012-03-24 22:06:45
【问题描述】:
我有一个选择器视图
[picker selectRow:3 inComponent:0 animated:YES];
当我在视图中编写此代码时确实加载了,
此方法用于将第 3 行设置为选取器中的默认行。
但我希望我选择的行下次设置为默认值。
怎么办?提前谢谢...
【问题讨论】:
标签:
iphone
objective-c
datepicker
uipickerview
didselectrowatindexpath
【解决方案1】:
这样试试
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】:
为什么不将最后按下的行保存在变量中,下次再加载?
类似:
int myLastPressed;
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
myLastPressed = row;
}
您可以在代码中使用变量,也可以在 NSUSerDefaults 中使用全局变量
然后下一次:
[picker selectRow:myLastPressed inComponent:0 animated:YES];
【解决方案3】:
这个问题很不精确。你想做什么?
selectRow:inComponent: 正是你必须调用的,如果你想选择一个特定的行。
如果你想为下一个 appstart 保存选中的状态,你可以在 UserDefaults 中保存当前选中的行(用selectedRowInComponent 读取):[[NSUserdefault standardUserDefaults] saveInteger: selectedRow forKey @"savedSelectedPickerRowComponent1"]