4

在 React Native 项目中,我想从 iOS npm 模块访问 Presented Viewcontroller。我可以使用以下代码访问 RN 项目的 rootviewcontroller

UIViewController *vc = [UIApplication sharedApplication].delegate.window.rootViewController;

但我想要在 RootVC 之上呈现的当前 VC,以便我应该能够在其之上呈现原生(iOS)UINavigationController。

注意:[UIApplication sharedApplication].delegate.window.rootViewController.presentedViewController返回零。

4

1 回答 1

6

我知道这是很久以前问过的,但是我今天遇到了同样的问题([UIApplication sharedApplication].delegate.window.rootViewController.presentedViewController返回nil)并且暂时找不到解决方案,所以我将把这个留给仍在寻找的人。

React Native 源代码中有一个函数允许您确定呈现的视图控制器。似乎他们将其用于他们的 ActionSheetIOS 模块(请参阅此)。要在您自己的本机模块中使用它,请添加以下内容:

// Put this near the top of the file
#import <React/RCTUtils.h>

...

// Put this where you need access to the presented view controller
UIViewController *presentedViewController = RCTPresentedViewController();
于 2019-08-19T19:35:46.097 回答