表示されているアラートビューを消す
アプリがバックグラウンドに入った時に、アラートビューを消す処理を行いたかったので実装しました。 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); } }
もっと簡単な方法があるかも。 本来は、アプリケーション側で勝手にアラートを消すのはよくない気はする。