UIPickerView无法预先选择一行

时间:2017-08-28 13:36:29

标签: swift3 uipickerview

对于我正在处理的应用,我想要的是,当视图显示时,选择器视图已经在某一行,并且我不需要触摸它(除非我需要它)。

我知道在SO上有很多像这样的问题,但我无法找到答案。

现在,这是做了什么以及有效的:

  • 当视图出现时,UIPickerView位于预选行(例如第2行)
  • 我可以将其更改为另一个并保存。

但是,当我尝试保存而不触碰它时,它就像没有被选中一样。我选择PickerView来选择我想要的行,即使它是我所选择的那一行"起初。

我选择了以下行:

pickerViewAction.selectRow(inPickerViewAction.index(of: temp?[0] as! String)!, inComponent: 0, animated: true)

inPickerViewAction.index(of: temp?[0] as! String)!是我需要的行。

我如何测试是否选择了一行(也许我的问题来自这里,我不知道......)

let selectedValue1 = inPickerViewAction[Row]
switch selectedValue1 {
    case "Email" :
        //Doing my stuff
    case "Commande http", name1, name2, name3, name4, name5:
        //Doing my stuff
    default:
        let alert = UIAlertController(title: "Nothing selected", message: "You must select an item before saving", preferredStyle: UIAlertControllerStyle.alert)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil))
        self.present(alert, animated: true, completion: nil)
        break

现在,如果我没有触摸UIPickerView,我就会看到UIAlert。

如果有人有想法,那就太棒了。 感谢

1 个答案:

答案 0 :(得分:0)

例如,如果要选择第一行: 您需要调用这两个:

//first call : 
pickerViewAction.selectRow(0, inComponent: 0, animated: true)
// then call the delegate : didSelectRow
pickerView(pickerViewAction, didSelectRow: 0, inComponent: 0)