Как я могу получить доступ к тексту Uitextfield в предупреждении? - PullRequest
0 голосов
/ 21 октября 2019

Я создал оповещение с двумя текстовыми полями, а inputView второго текстового поля является представлением выбора. Я могу получить доступ к тексту первого текстового поля с помощью alert.textfields? .First? .Text. Я хочу отобразить элементы представления средства выбора во втором текстовом поле, но я не знаю, как получить доступ к secondTextfield.text в функции представления средства выбора didSelectRow. как я могу это исправить?

 buttonAnimation(button: addButton)
     passwordStringArray.insert("\(passwordLabel.text ?? "")", at: 0)

        let alert = UIAlertController(title: "\(passwordLabel.text ?? "")", message: "customize your password", preferredStyle: .alert)

        alert.addTextField { (notesTextfield) in
            notesTextfield.placeholder = "type in some notes"
            notesTextfield.textAlignment = .center
        }
        alert.addTextField { (categoryTextfield) in
            categoryTextfield.placeholder = "choose your password category"
            categoryTextfield.textAlignment = .center
            categoryTextfield.inputView = self.picker

        }

        let actionSave = UIAlertAction(title: "save", style: .default) { (cancelButton) in
            self.dismiss(animated: true, completion: nil)
            self.passwordNotesArray.insert("\(alert.textFields?.first?.text ?? "")", at: 0)
//            self.passwordCategory.insert(categorytextfield.text)

            self.performSegue(withIdentifier: "segue", sender: self)
        }

        let actionCancel = UIAlertAction(title: "cancel", style: .default) { (saveButton) in
            self.dismiss(animated: true, completion: nil)

        }

        alert.addAction(actionCancel)
        alert.addAction(actionSave)

        self.present(alert, animated: true)
    }





func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

        // how can i access alert.textfield.categorytectfield.text here ?
    }

1 Ответ

0 голосов
/ 23 октября 2019

Вы можете сделать это только как заполнитель, если хотите. Если вы хотите сделать это, вы должны создать функцию оповещения, которая получает один аргумент, подобный функции выбора. Вы хотите это как заполнитель или нет? С заполнителем это довольно просто. Если вы хотите поместить туда данные, я думаю, что это невозможно, потому что оповещение должно получать данные, а не иметь их внутри.

Чтобы данные были предупреждены, функция оповещения должна получить один аргумент String из pickerView. Оповещение должно вызываться внутри функции didselect для viewerview.

...