Я предполагаю, что ваш pickerView настроен правильно, но вы видите только одну строку? Если это так, то, вероятно, из-за этой строки кода:
//change array to dictionary
guard let jsonDictionary:Dictionary = jsonArray.first else{
return
}//guard
print("jsonDictionary ==>\(jsonDictionary)")
Вы получаете только первый элемент вашего массива.
Вместо этого я бы просто использовал jsonResponse следующим образом:
var planDates = [Any]()
if let jsonResponse = jsonResponse {
for dictionary in jsonResponse {
planDates.append(dictionary["PlanDate"])
}
}
Затем вы можете использовать planDates для заполнения вашего pickerView.
Или, может быть, вы пытаетесь загрузить pickerView с данными из словаря?
Во-первых, ваш ViewController должен иметь подкласс UIPickerViewDataSource, UIPickerViewDelegate
.
Затем в ViewDidLoad установите ViewController в качестве делегата / источника данных для вашего UIPickerView:
repeatPicker.delegate = self
repeatPicker.dataSource = self
Затем реализуйте методы делегата / источника данных:
// The number of components of your UIPickerView
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
// The number of rows of data
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
// Return number of planDate entries
}
// The data to return for the row and component (column) that's being passed in
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
}