在React Native Project中,我想从iOS NPM模块访问呈现的ViewController。我能够使用以下代码
访问RN项目的rootviewControllerUIViewController *vc = [UIApplication sharedApplication].delegate.window.rootViewController;
,但我想要在rootvc顶部显示的当前VC,以便我能够在其顶部呈现本机(ios)uinavigationController。
注意: [UIApplication sharedApplication].delegate.window.rootViewController.presentedViewController
返回nill。
我知道很久以前就问了这一点,但是我今天遇到了同样的问题([UIApplication sharedApplication].delegate.window.rootViewController.presentedViewController
返回nil
),并且一段时间找不到解决方案,所以我将将此留给仍在寻找的任何人。
REECT本机源代码中有一个函数,允许您确定显示的视图控制器。似乎他们将其用于其ActionHeetios模块(请参阅此行)。要在您自己的本机模块中使用它,请添加以下内容:
// 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();