我在视图控制器中有4个文本字段,它们将使用单个PickerView,但根据哪个文本字段处于活动状态进行更新(通过编辑确实开始操作)。我可以从单个测试数组加载数据,但无法找到一种方法让拾取器视图在几个预先加载了从Parse查询的数据的数组之间切换。
另外,有没有办法从字符串中引用数组名称?例如:替换" testArray"使用didSelectRow函数中的变量并在文本字段变为活动时设置变量。
谢谢!
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if activeField == 1 {
return fieldNameArray[row]
} else if activeField == 2 {
return taskCategoryArray[row]
} else if activeField == 3 {
return assignedPersonArray[row]
} else if activeField == 4 {
return machineUsedArray[row]
}
//return testArray[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if activeField == 1 {
return fieldNameArray.count
} else if activeField == 2 {
return taskCategoryArray.count
} else if activeField == 3 {
return assignedPersonArray.count
} else if activeField == 4 {
return machineUsedArray.count
}
//return testArray.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if activeField == 1 {
fieldNameTextField.text = testArray[row]
} else if activeField == 2 {
taskCategoryTextField.text = testArray[row]
} else if activeField == 3 {
assignedPersonTextField.text = testArray[row]
} else if activeField == 4 {
machineryUsedTextField.text = testArray[row]
}
pickerView.isHidden = true
}
答案 0 :(得分:0)
我不理解你问题的第二部分。
但是对于第一部分,你几乎就在那里,当你的一个文本视图变为活动状态时,你只需要重新加载选择器视图:
pickerView.reloadAllComponents()