Я создал класс Alert на своем уровне модели для представления простых оповещений, и это прекрасно работает.
class Alert {
class func showBasic(title: String, message: String, vc: UIViewController) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
vc.present(alert, animated: true)
}
}
Я пытаюсь добавить второй тип оповещения с текстовым полем и имеюрезультат textField доступен в контроллере представления. Я пытался с обработчиком завершения, но обработчик завершения срабатывает, когда предупреждение заканчивается, а не когда текст вводится. Как я могу захватить текст в текстовом поле и использовать его в контроллере представления?
class func withInput(title: String, message: String, vc: UIViewController, placeholder: String, btnTitle: String, complete: (_ result:String) -> Void) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
alert.addTextField { (textField) in
textField.placeholder = placeholder
}
alert.addAction(UIAlertAction(title: btnTitle, style: .default, handler: nil))
vc.present(alert, animated: true)
if let text = alert.textFields?[0].text {
complete(text)
}
}