Mặc định UIAlertController không tự dismiss khi tap ngoài. Cách xử lý:
- Tạo
UIAlertControllerstyle.alert. - Present kèm
completionblock: bậtisUserInteractionEnabledcho superview, gánUITapGestureRecognizergọi selector dismiss.
@IBAction func showAlert(_ sender: Any) {
let alert = UIAlertController(title: "WELCOME", message: "Tap outside to dismiss", preferredStyle: .alert)
self.present(alert, animated: true) {
alert.view.superview?.isUserInteractionEnabled = true
alert.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.dismissOnTapOutside)))
}
}
@objc func dismissOnTapOutside() {
self.dismiss(animated: true, completion: nil)
}