ios - 有没有办法清除 uipickerview 选择?

标签 ios objective-c uipickerview nsuserdefaults uipopover

我在带有完成和取消按钮的 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];
}

最佳答案

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

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

这应该将您的 pickerview 设置为在每次加载 View 时都排在 0 索引处。

关于ios - 有没有办法清除 uipickerview 选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17755524/

相关文章:

ios - 我该如何解决这个委托(delegate)错误?

ios - 使用自动布局在 TableView 单元格中自动调整 UIImageView 的大小

ios - 如果 App delegate 想要使用主 Storyboard文件,它必须实现 window 属性

c# - 从 iOS 设备获取 %windir%\System32\LogFiles\HTTPERR 中的 'Request_Cancelled'

ios - 如何在 iOS 中使用 AVPlayer url 发送 cookie?

ios - UIPickerView 作为 inputView,但不允许直接编辑

iphone - 解析后的网页背景在iphone中不透明

ios - xcode - 表格 View 下的进度条

ios - UIPickerView 在错误的组件中选择行(需要驱魔?)

ios - pickerViews 崩溃