如何每次选择/设置选择器视图中的选定行作为默认选定行

时间:2012-03-07 11:18:52

标签: iphone objective-c datepicker uipickerview didselectrowatindexpath

我有一个选择器视图

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

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

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

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

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

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"]