警告:尝试在已经呈现的 <UINavigationController> 上呈现 <RNNSideMenuController> <RCTModalHostViewController>

问题描述 投票:0回答:1

我正在使用 in-app-paids-react-native-plugin 插件将 Square 支付方式集成到 React Native 中。在 iOS 中,如果在添加新卡反应本机弹出窗口中打开卡输入模型,则会产生问题。我有一个弹出窗口来添加新的信用卡详细信息,并在弹出窗口内调用卡输入模型时从包中收到此警告。它可以在 Android 上运行,如果不从弹出屏幕调用,也可以在 iOS 上运行。

Xcode 内的警告::

Warning: Attempt to present <UINavigationController: 0x7fba6b163400>  on <RNNSideMenuController: 0x7fba6b15fa00> which is already presenting <RCTModalHostViewController: 0x7fba6d798340>

我正在使用 Xcode 版本“11.0”并响应本机“0.61.4”。

生成此警告的包的 Objective-C 代码::

UIViewController *rootViewController = UIApplication.sharedApplication.keyWindow.rootViewController;

if ([rootViewController isKindOfClass:[UINavigationController class]]) {
    [((UINavigationController *)rootViewController) pushViewController:cardEntryForm animated:YES];
} else {
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:cardEntryForm];
    [rootViewController presentViewController:navigationController animated:YES completion:nil];
}

此处 if 某个部分正在工作,但 if 语句生成此警告。我是目标 c 的新手。请提出这里发生了什么问题。

react-native react-native-ios square
1个回答
2
投票

两个模态不能同时打开。在 iOS 上,即使连续打开模式也可能会触发此问题。对于我的情况,我关闭了第一个模态,并在打开第二个模态之前设置了 500 毫秒的时间。它解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.