From ccd0251034bfeae1dba2d6a3f8bc6367b6910cb3 Mon Sep 17 00:00:00 2001 From: emawby Date: Wed, 5 Aug 2020 15:09:59 -0700 Subject: [PATCH] always setting presentation controller delegate when presenting a webview --- iOS_SDK/OneSignalSDK/Source/OneSignalWebView.m | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/iOS_SDK/OneSignalSDK/Source/OneSignalWebView.m b/iOS_SDK/OneSignalSDK/Source/OneSignalWebView.m index 8de4b3422..d64fae01c 100644 --- a/iOS_SDK/OneSignalSDK/Source/OneSignalWebView.m +++ b/iOS_SDK/OneSignalSDK/Source/OneSignalWebView.m @@ -105,8 +105,9 @@ - (void)showInApp { if (!navController) { navController = [[UINavigationController alloc] initWithRootViewController:self]; navController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; - navController.presentationController.delegate = self; } + navController.presentationController.delegate = self; + if (!viewControllerForPresentation) { viewControllerForPresentation = [[UIViewController alloc] init]; [[viewControllerForPresentation view] setBackgroundColor:[UIColor clearColor]]; @@ -122,8 +123,9 @@ - (void)showInApp { UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow]; - if (!viewControllerForPresentation.view.superview) + if (!viewControllerForPresentation.view.superview) { [mainWindow addSubview:[viewControllerForPresentation view]]; + } @try { [viewControllerForPresentation presentViewController:navController animated:YES completion:nil]; @@ -133,11 +135,15 @@ - (void)showInApp { - (void)clearWebView { [_webView loadHTMLString:@"" baseURL:nil]; - if (viewControllerForPresentation) + if (viewControllerForPresentation) { + [OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:@"clearing web view"]; [viewControllerForPresentation.view removeFromSuperview]; + } + } - (void)presentationControllerDidDismiss:(UIPresentationController *)presentationController { + [OneSignal onesignal_Log:ONE_S_LL_VERBOSE message:@"presentation controller did dismiss webview"]; [self clearWebView]; }