From 8dc732cfbef2be342beb1e47bb9608e9891da1f1 Mon Sep 17 00:00:00 2001 From: Rossen Hristov Date: Wed, 29 Jun 2016 17:18:19 +0300 Subject: [PATCH] Fix: iOS onSuspend + showModal() returning "Error: This value is not a native object" Resolves #2173 --- tns-core-modules/ui/page/page.ios.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tns-core-modules/ui/page/page.ios.ts b/tns-core-modules/ui/page/page.ios.ts index 8712633c1..fed5f9317 100644 --- a/tns-core-modules/ui/page/page.ios.ts +++ b/tns-core-modules/ui/page/page.ios.ts @@ -372,11 +372,20 @@ export class Page extends pageCommon.Page { this._ios.modalPresentationStyle = UIModalPresentationStyle.UIModalPresentationFormSheet; this._UIModalPresentationFormSheet = true; } - + super._raiseShowingModallyEvent(); parent.ios.presentViewControllerAnimatedCompletion(this._ios, utils.ios.MajorVersion >= 7, null); - UIViewControllerTransitionCoordinator.prototype.animateAlongsideTransitionCompletion.call(parent.ios.transitionCoordinator(), null, () => this._raiseShownModallyEvent()); + let transitionCoordinator = parent.ios.transitionCoordinator(); + if (transitionCoordinator){ + UIViewControllerTransitionCoordinator.prototype.animateAlongsideTransitionCompletion.call(transitionCoordinator, null, () => this._raiseShownModallyEvent()); + } + else { + // Apparently iOS 9+ stops all transitions and animations upon application suspend and transitionCoordinator becomes null here in this case. + // Since we are not waiting for any transition to complete, i.e. transitionCoordinator is null, we can directly raise our shownModally event. + // Take a look at https://github.com/NativeScript/NativeScript/issues/2173 for more info and a sample project. + this._raiseShownModallyEvent(); + } } protected _hideNativeModalView(parent: Page) {