UIAlertController-কে বাইরে ট্যাপ করলে বন্ধ করা
ডিফল্টরূপে UIAlertController (style: .alert) বাইরে ট্যাপ করলে বন্ধ হয় না। এটি করতে একটি ট্যাপ জেসচার রিকগ্নাইজার যোগ করতে হয়।
বাস্তবায়ন
import UIKit
class ViewController: UIViewController {
@IBAction func showAlert(_ sender: Any) {
let alert = UIAlertController(
title: "WELCOME",
message: "বাইরে ট্যাপ করলে এই অ্যালার্ট বন্ধ হবে।",
preferredStyle: .alert
)
present(alert, animated: true) {
// প্রেজেন্টেশন শেষ হলে জেসচার যোগ করুন
alert.view.superview?.isUserInteractionEnabled = true
alert.view.superview?.addGestureRecognizer(
UITapGestureRecognizer(target: self, action: #selector(dismissOnTapOutside))
)
}
}
@objc func dismissOnTapOutside() {
dismiss(animated: true, completion: nil)
}
}
সতর্কতা
- এটি শুধু
.alertস্টাইলে কাজ করে (.actionSheet-এ iOS স্বয়ংক্রিয় বন্ধ করে)। - iOS ১৩+ এ মডাল প্রেজেন্টেশন স্টাইল
.pageSheetহলে আচরণ ভিন্ন হতে পারে। - অ্যেকশন শীটের জন্য এই পদ্ধতি প্রয়োজন নেই।