【问题标题】: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"]

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-10-01
          • 2017-07-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-28
          相关资源
          最近更新 更多