UIPickerView Откат по умолчанию изменен - PullRequest
0 голосов
/ 11 декабря 2018

Я вне себя.Моя простая задача - использовать 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")

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...