Я вне себя.Моя простая задача - использовать pickerView
для установки значения по умолчанию, если оно было установлено ранее при его закрытии.Но проблема в логике.Он переходит к строке по умолчанию и устанавливает заголовок, но когда я пытаюсь изменить его, он возвращается к значению по умолчанию.Я думал, что смогу установить условие логического значения, но теперь это влияет на то, куда я его положу.
Любая помощь будет отличной.У меня не было достаточно основ в Swift, чтобы знать, где находится контроль, чтобы сделать это правильно.Вот суть этого.
/ Функции просмотра сборщика ...
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return pickerData.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if (mySavedBool) { //this is true
let pickerIndexVal = pickerViewTitty(sourceNewSelected: mySavedSource)
pickerView.selectRow(pickerIndexVal, inComponent: 0, animated: true)
}
print(pickerData[row].id)
NameLabel.text = pickerData[row].name
return pickerData[row].name
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
NameLabel.text = pickerData[row].name
NameLabelID.text = pickerData[row].id
mySavedSource = pickerData[row].id //Set the source equal to the source id needed in the URL
UserDefaults.standard.set(mySavedSource, forKey: "mySavedSource") //set the selection to save in the pfile
print("Inside pickerView mySavedBool = \(mySavedBool) and Plist defaults in picker \(mySavedSource)")
}
override func viewDidLoad() {
super.viewDidLoad()
print("On viewDidLoad mySavedSource is \(mySavedSource) and mySavedBoolTest is \(mySavedBool)")
tableView.refreshControl = refreshControl
refreshControl.addTarget(self, action: #selector(ViewController.refreshData), for: UIControl.Event.valueChanged)
myPicker.delegate = self
myPicker.dataSource = self
tableView.dataSource = self
tableView.delegate = self
fetchURLSource()
fetchURLData()
}
@objc func refreshData () {
print("refresh Data Called and mySavedBoolTest \(mySavedBool)")
print("source Selected at start of refresh \(mySavedSource)")
fetchURLData()
tableView.reloadData()
refreshControl.endRefreshing()
print("Looks Done")
}