【问题标题】:is there a way to clear uipickerview selection?有没有办法清除 uipickerview 选择?
【发布时间】:2017-07-21 14:35:18
【问题描述】:

我在带有完成和取消按钮的 uipopover 中有一个完美工作的 uipickerview。当用户多次打开 uipickerview 时,我可以保存最后选择的行并将其显示为默认值。问题是,当用户注销并登录时,我希望 uipickerview 重新启动,即,当我打开 uipickerview 并单击完成按钮(不选择任何行)时,我希望它使用默认行,即。 row0 但它在注销前显示最后选择的行!我该如何解决这个问题?非常感谢您的帮助。

NSString *selectedType = @"ALL";
int rowselected = 0;

- (void)viewDidLoad
{
    [super viewDidLoad];
    rowselected = 0;
    _typearray = [[NSArray alloc] initWithObjects:@"ALL", @"COACH", @"GROUP", @"PRIVATE", nil];
    NSInteger lastrow =[[[NSUserDefaults standardUserDefaults] objectForKey:@"gueststyperow"] integerValue];

    if(lastrow!=0)
        [self.picktype selectRow:lastrow inComponent:0 animated:NO];
    else
        [self.picktype selectRow:0 inComponent:0 animated:NO];
}

//按下完成按钮:

- (IBAction)doneButtonPress:(UIBarButtonItem *)sender {
    NSLog(@"%@",_delegate);
    NSNumber *temprow = [NSNumber numberWithInt:rowselected];
    [[NSUserDefaults standardUserDefaults] setValue:temprow forKey:@"gueststyperow"];
    [_delegate sendtype:selectedType];
}

//PICKERVIEW选择

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
        inComponent:(NSInteger)component{
        rowselected = row;
        selectedType = [_typearray objectAtIndex:row];
}

【问题讨论】:

  • 您是否尝试在viewDidLoad 中将pickerview 设置为nil?
  • 感谢@CaptJak ..您能更具体地说明如何在代码中完成此操作吗?
  • CaptKack 所说的。释放,设置为零,然后创建一个新的选择器视图。
  • 如何发布?我正在做 ARC 项目.. @rocky
  • 哦,你从来没有提到过,所以没关系。然后设置为零。

标签: ios objective-c uipickerview nsuserdefaults uipopover


【解决方案1】:

把这个放在上面[super viewDidLoad]:

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

这应该将您的选择器视图设置为每次加载视图时将索引设置为 0。

【讨论】:

  • 是的,它的工作@CaptJak..谢谢...我把它放在 [super viewdidload] 之后,它就像一个魅力
猜你喜欢
  • 2016-01-06
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
相关资源
最近更新 更多