Создаю программно алерт контроллер и вызываю его через self.present(…).
Надо, чтоб при нажатии вне его он исчезал. Не подскажите, как реализовать?
Выход из алертконтроллера при нажатии вне его
DoubleDoGG
#1
simonova
#2
А смысл? алерт на то и алерт, чтобы выбрать действие, либо нажать отмену.
Либо сделайте кастомную вьюху с прозрачным бэкграундом и к ней прицепите ТАП … в которой запихните что-то типа(если у вас есть navigation controller):
_ = navigationController?.popViewController(animated: true )
либо если у вас вью поверх предыдущего:
dismiss(animated: true, completion: nil )
haymob
#3
let alert = UIAlertController(title: "Hello", message: nil, preferredStyle: .alert)
present(alert, animated: true) {
alert.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.dismiss)))
}
Vitaly
#4
present(alert, animated: true) {
self.alert.view.superview?.subviews.first?.isUserInteractionEnabled = true
self.alert.view.superview?.subviews.first?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.dismissAlertController)))
}
@objc func dismissAlertController(){
self.alert.dismiss(animated: true, completion: nil)
}
Так правильней и работает
Maxim
#6
тоже не понимаю смысла задачи. Алерт на то и алерт, чтобы блокировать экран и двигаться дальше только по нажатию кнопки.
Но если такая задача есть, то может лучше использовать не алерт, а что-то другое?