でぐちやドットコム技術ブログ

でぐちやドットコムの技術系ブログです。

表示されているアラートビューを消す

アプリがバックグラウンドに入った時に、アラートビューを消す処理を行いたかったので実装しました。 Objective-CやSwiftのコードは結構ネット上にも転がっているが、Xamarinでのソースがあまり発見できなかった。

if (!UIApplication.SharedApplication.KeyWindow.IsMemberOfClass(new ObjCRuntime.Class("UIWindow")))
{
    var view = UIApplication.SharedApplication.KeyWindow.RootViewController;
    while (view.PresentedViewController != null)
    {
        view = view.PresentedViewController;
    }
    if (view.IsKindOfClass(new ObjCRuntime.Class("UIAlertController")))
    {
        view.DismissViewController(false, null);
    }
}

もっと簡単な方法があるかも。 本来は、アプリケーション側で勝手にアラートを消すのはよくない気はする。