Как вернуть значения функции после нажатия на кнопку в AlertController swift

возникла трудность с возращением значения в функции. Надо вернуть значения в функцию в зависимости от выбранной кнопки в AlertController.

func alertMessange() -> Bool{
        let alert = UIAlertController(title: "Messange", message: "", preferredStyle: UIAlertController.Style.alert)
        alert.addAction(UIAlertAction(title: "Cancel", style: .default){ (alert) -> Void in
//            return true
        })
        alert.addAction(UIAlertAction(title: "Ok", style: .cancel){ (alert) -> Void in
//            return false
        })
    }

Помогите пожалуйста!


Ответы (1 шт):

Автор решения: VAndrJ

В данном случае нужно не возвращать значение, а использовать closures (замыкания):

func alertMessage(after completion: @escaping (Bool) -> Void) {
    ...
    alert.addAction(UIAlertAction(title: "Cancel", style: .default){ (alert) -> Void in
        completion(true)
    })
    ...
}

И используете где нужно:

alertMessage(after: { result in 
    print(result)
})
→ Ссылка