2020/02/13

[Swift5]UIAlertControllerをコードで閉じる処理を実装

タイマーが0になるとUIAlertControllerを表示させる処理を入れる際に、既にポップアップが表示されていた場合は、そのポップアップを閉じてから新しいUIAlertControllerを入れたかったため備忘

サンプルコード

//1番前面のViewを取得
var vc = UIApplication.shared.keyWindow?.rootViewController;
while ((vc!.presentedViewController) != nil) {
    vc = vc!.presentedViewController;
}
//前面のViewがUIAlertControllerであれば閉じる
let alert = vc as? UIAlertController
if alert != nil {
    alert!.dismiss(animated: false, completion: nil)
}

コードの説明

dismissの処理は一般的によく使われていますが、completionで閉じた後の挙動も定義することができます。


お知らせ

ヒヨコ歩数計という歩きながらヒヨコが育っていくアプリを作って、いろんな方に結構使ってもらっています。
RealmSwift, Admobの動画・インステ・バナー広告、UICollectionView、iOS-Charts、UITableViewを使用しているので、是非ご利用ください!