React Native iOS 模式/弹出窗口立即消失

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

我正在开发一个原生模块来集成支付。 使用 xcode 并使用符号断点进行调试后,我找到了问题的根源,但我想了解为什么会发生这种情况,以及如何解决问题。

我使用

UIViewController
来呈现此模式,但视图控制器的类型是
RCTModalHostViewController
,因为我正在使用的 UI 库(UI Kitten)正在做一些事情来更改视图控制器的类型。 当我删除 UI Kitten 时,视图控制器类型再次返回
UIViewController
,并且模式不会消失。

如何获取视图控制器的实例? 我使用此标题中的方法

RCTPresentedViewController()
<React/RCTUtils.h>

代码的相关部分在这里:

internal class OppwaHandler: NSObject, UINavigationControllerDelegate, OPPThreeDSEventListener, PKPaymentAuthorizationViewControllerDelegate {
    // constants
    let viewController = RCTPresentedViewController()

    // ... some irrelevant code

    public func onApplePay(params: ApplePayParams) -> String {
         // ... some irrelevant code
        if let rootViewController = self.viewController {
            if let vc = PKPaymentAuthorizationViewController(paymentRequest: request) as PKPaymentAuthorizationViewController? {
                vc.delegate = self
            
                DispatchQueue.main.async {
                    rootViewController.present(vc, animated: true, completion: nil)
                }
                return "Ok. reached end of ok logic"
            } else {
                return "Apple Pay not supported."
            }
        }else{
            return "Not showing view controller"
        }

使用 UI KItten 时,

rootViewController
的类型是
RCTModalHostViewController
,但是当我删除 UI Kitten 时,它的类型是
UIViewController
并且模态框不会消失。

版本:

  • 世博会:2017年0月50日
  • 反应本机:0.73.6
  • UI 小猫:5.1.2

一般信息:

  • 有问题的模式是 Apple Pay 窗口。
  • 我正在将 Apply Pay 与 Oppwa 集成。
react-native uiviewcontroller react-native-ui-kitten
1个回答
0
投票

回答我自己的问题。

iOS 不允许呈现多个模式。我已经在不知情的情况下呈现了一个模式(加载视图)。

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