如何将选定的UIPicker行与先前输入的数据同步

时间:2011-02-07 00:22:00

标签: ios uipicker

我有一个Picker,它作为UITextField的inputView而不是键盘。用户拨打他们的选择,保存然后关闭视图。当您返回该视图并转到拨入新选项时,选择器与保存的数据不同步。

选择器正在为数据源使用字符串数组。

因此,例如,查看下面的图片,您可以看到选择器位于第一个空位置。但我想要的是选择器拨入RE2或textField中保存的其他选项。

如何同步这两个?

enter image description here

1 个答案:

答案 0 :(得分:3)

我明白了。我遍历dataSource数组,为选择器找到匹配的字符串,然后使用selectRow:inComponent:在选择器上进行动画处理以同步它。这是代码。我在textField委托方法中触发它。

- (void)textFieldDidBeginEditing:(UITextField *)textField{
    UIBarButtonItem *saveButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save)];
    self.navigationItem.rightBarButtonItem = saveButtonItem;
    [saveButtonItem release];

    //Sync The Picker
    for(NSInteger i = 0; i < [pickerData count]; i++){
        NSString *string = [pickerData objectAtIndex:i];
        if([string isEqualToString:profileField.text]){
            pickerRow = i;
            break;  //Once we have it break out of the loop
        }
    }
    [myPicker selectRow:pickerRow inComponent:0 animated:NO];
}