diff --git a/packages/core/ui/dialogs/index.ios.ts b/packages/core/ui/dialogs/index.ios.ts index 1bc18734d..03d258e62 100644 --- a/packages/core/ui/dialogs/index.ios.ts +++ b/packages/core/ui/dialogs/index.ios.ts @@ -45,9 +45,9 @@ function raiseCallback(callback, result) { } function showUIAlertController(alertController: UIAlertController) { - let viewController = ios.rootController; + let viewController = ios.rootController as UIViewController; - while (viewController && viewController.presentedViewController) { + while (viewController && viewController.presentedViewController && !viewController.presentedViewController.beingDismissed) { viewController = viewController.presentedViewController; } @@ -60,7 +60,7 @@ function showUIAlertController(alertController: UIAlertController) { if (alertController.popoverPresentationController) { alertController.popoverPresentationController.sourceView = viewController.view; alertController.popoverPresentationController.sourceRect = CGRectMake(viewController.view.bounds.size.width / 2.0, viewController.view.bounds.size.height / 2.0, 1.0, 1.0); - alertController.popoverPresentationController.permittedArrowDirections = 0; + alertController.popoverPresentationController.permittedArrowDirections = 0 as UIPopoverArrowDirection; } const color = getButtonColors().color;