From 21cb876ee23a319a6c70e82ff087d759ac79360a Mon Sep 17 00:00:00 2001 From: Sejun Jeong Date: Sat, 29 Dec 2018 03:22:21 +0900 Subject: [PATCH 1/3] fix(iOS): open from available presentedViewController Check for presentedViewController and present from it. Allow opening from already presented modal. Addresses issue #214 and #79 --- src/imagepicker.ios.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/imagepicker.ios.ts b/src/imagepicker.ios.ts index afa124d..1f907e7 100644 --- a/src/imagepicker.ios.ts +++ b/src/imagepicker.ios.ts @@ -28,7 +28,8 @@ export class ImagePicker extends data_observable.Observable { } get hostController() { - return this.hostView ? this.hostView.viewController : UIApplication.sharedApplication.keyWindow.rootViewController; + let vc = this.hostView ? this.hostView.viewController : UIApplication.sharedApplication.keyWindow.rootViewController; + return vc.presentedViewController || vc; } constructor(options: Options = {}, hostView: View) { From 20e70ec8a5a528635cfd2ab9d98cfb147d418f36 Mon Sep 17 00:00:00 2001 From: Sejun Jeong Date: Sat, 29 Dec 2018 22:27:05 +0900 Subject: [PATCH 2/3] fix(iOS): iterate for multi level modal --- src/imagepicker.ios.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/imagepicker.ios.ts b/src/imagepicker.ios.ts index 1f907e7..8d01339 100644 --- a/src/imagepicker.ios.ts +++ b/src/imagepicker.ios.ts @@ -29,7 +29,14 @@ export class ImagePicker extends data_observable.Observable { get hostController() { let vc = this.hostView ? this.hostView.viewController : UIApplication.sharedApplication.keyWindow.rootViewController; - return vc.presentedViewController || vc; + while ( + page.presentedViewController + && page.presentedViewController.viewLoaded + && page.presentedViewController.view.window + ) { + page = page.presentedViewController; + } + return vc; } constructor(options: Options = {}, hostView: View) { From 7b01a4ca9a54f8631106d468f0d4a28692abb9c8 Mon Sep 17 00:00:00 2001 From: Sejun Jeong Date: Thu, 3 Jan 2019 21:52:44 +0900 Subject: [PATCH 3/3] fix: typo page -> vc https://github.com/NativeScript/nativescript-imagepicker/pull/235/files/20e70ec8a5a528635cfd2ab9d98cfb147d418f36 --- src/imagepicker.ios.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/imagepicker.ios.ts b/src/imagepicker.ios.ts index 8d01339..3af82d2 100644 --- a/src/imagepicker.ios.ts +++ b/src/imagepicker.ios.ts @@ -30,11 +30,11 @@ export class ImagePicker extends data_observable.Observable { get hostController() { let vc = this.hostView ? this.hostView.viewController : UIApplication.sharedApplication.keyWindow.rootViewController; while ( - page.presentedViewController - && page.presentedViewController.viewLoaded - && page.presentedViewController.view.window + vc.presentedViewController + && vc.presentedViewController.viewLoaded + && vc.presentedViewController.view.window ) { - page = page.presentedViewController; + vc = vc.presentedViewController; } return vc; }