mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-14 18:12:09 +08:00
fix(ios): getVisibleViewController maximum call stack exceeded
This commit is contained in:
@ -96,19 +96,12 @@ export namespace iOSNativeHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getVisibleViewController(rootViewController: UIViewController): UIViewController {
|
export function getVisibleViewController(rootViewController: UIViewController): UIViewController {
|
||||||
if (rootViewController.presentedViewController) {
|
let viewController = rootViewController;
|
||||||
return getVisibleViewController(rootViewController.presentedViewController);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rootViewController.isKindOfClass(UINavigationController.class())) {
|
while (viewController && viewController.presentedViewController) {
|
||||||
return getVisibleViewController((<UINavigationController>rootViewController).visibleViewController);
|
viewController = viewController.presentedViewController;
|
||||||
}
|
}
|
||||||
|
return viewController;
|
||||||
if (rootViewController.isKindOfClass(UITabBarController.class())) {
|
|
||||||
return getVisibleViewController(<UITabBarController>rootViewController);
|
|
||||||
}
|
|
||||||
|
|
||||||
return rootViewController;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function applyRotateTransform(transform: CATransform3D, x: number, y: number, z: number): CATransform3D {
|
export function applyRotateTransform(transform: CATransform3D, x: number, y: number, z: number): CATransform3D {
|
||||||
@ -125,33 +118,33 @@ export namespace iOSNativeHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return transform;
|
return transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createUIDocumentInteractionControllerDelegate(): NSObject {
|
export function createUIDocumentInteractionControllerDelegate(): NSObject {
|
||||||
@NativeClass
|
@NativeClass
|
||||||
class UIDocumentInteractionControllerDelegateImpl extends NSObject implements UIDocumentInteractionControllerDelegate {
|
class UIDocumentInteractionControllerDelegateImpl extends NSObject implements UIDocumentInteractionControllerDelegate {
|
||||||
public static ObjCProtocols = [UIDocumentInteractionControllerDelegate];
|
public static ObjCProtocols = [UIDocumentInteractionControllerDelegate];
|
||||||
|
|
||||||
public getViewController(): UIViewController {
|
public getViewController(): UIViewController {
|
||||||
const app = UIApplication.sharedApplication;
|
const app = UIApplication.sharedApplication;
|
||||||
|
|
||||||
return app.keyWindow.rootViewController;
|
return app.keyWindow.rootViewController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public documentInteractionControllerViewControllerForPreview(controller: UIDocumentInteractionController) {
|
public documentInteractionControllerViewControllerForPreview(controller: UIDocumentInteractionController) {
|
||||||
return this.getViewController();
|
return this.getViewController();
|
||||||
}
|
}
|
||||||
|
|
||||||
public documentInteractionControllerViewForPreview(controller: UIDocumentInteractionController) {
|
public documentInteractionControllerViewForPreview(controller: UIDocumentInteractionController) {
|
||||||
return this.getViewController().view;
|
return this.getViewController().view;
|
||||||
}
|
}
|
||||||
|
|
||||||
public documentInteractionControllerRectForPreview(controller: UIDocumentInteractionController): CGRect {
|
public documentInteractionControllerRectForPreview(controller: UIDocumentInteractionController): CGRect {
|
||||||
return this.getViewController().view.frame;
|
return this.getViewController().view.frame;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new UIDocumentInteractionControllerDelegateImpl();
|
return new UIDocumentInteractionControllerDelegateImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isRealDevice() {
|
export function isRealDevice() {
|
||||||
try {
|
try {
|
||||||
|
Reference in New Issue
Block a user