Я не могу вставить значение из базы данных в окно выбора - PullRequest
0 голосов
/ 18 июня 2019

Я не могу вставить значение из базы данных в представление средства выбора.
Я не уверен, как решить эту проблему.

var getpPlandate: [String] = [] 
var getpShipment: [String] = []

@IBOutlet weak var getpPlanDatePickerView: UITextField!
@IBOutlet weak var getpShipmentPickerView: UITextField!

Загрузить данные:

func getPlanDatetoPickerview(ptruckID: String)-> Void {
        ....
        let jsonResponse = try JSONSerialization.jsonObject(with: strObject, options: []) as? [Dictionary<String,Any>]
        print("jsonResponse ==> \(String(describing: jsonResponse))")
        ....
        let planDate: String = jsonDictionary["PlanDate"] as! String
        print("planDate ==> \(planDate)")

        DispatchQueue.main.async {
            self.getpPlanDatePickerView.text = " " + planDate 
        }
    .......
    }
    task.resume()
}

Представление средства выбора:

Функциональное числоOfComponents (в представлении средства выбора: UIPickerView) -> Int {return 1}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return self.getpPlandate.count
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    let titleRow = (getpPlandate[row])
    return titleRow
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    if getpPlandate.count > 0 && getpPlandate.count >= row && getpShipment.count >= row {
        getpPlanDatePickerView.text = getpPlandate[row]
        getpShipmentPickerView.text = getpShipment[row]
        print("PlanDate ==> \(getpPlandate) - \(getpShipment)")
    }//if
}

1 Ответ

0 голосов
/ 18 июня 2019

Реализовали ли вы метод делегирования titleForRow или viewForRow в UIPickerView?

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

if pickerView == getpPlanDatePickerView {
    return getpPlandate[row]
}
else if pickerView == getpShipmentPickerView {
    return getpShipment[row]
} }

также, ваш IBOutlets должен быть UIPickerView вместо UITextField, я думаю.

...