首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在视图不在窗口层次结构中的<UINavigationController>上显示<CFSDK.CFViewController>

尝试在视图不在窗口层次结构中的<UINavigationController>上显示<CFSDK.CFViewController>
EN

Stack Overflow用户
提问于 2021-06-15 14:10:47
回答 1查看 42关注 0票数 0

我是swift的新手,我正在实施无现金Api,其流程如下

代码语言:javascript
复制
https://dev.cashfree.com/payment-gateway/integrations/mobile-integration/ios

但我在演示CFViewController时遇到了问题,它显示了警告

代码语言:javascript
复制
Attempt to present <CFSDK.CFViewController> on <UINavigationController> whose view is not in the window hierarchy!

我的代码是这样的

代码语言:javascript
复制
CFPaymentService().doWebCheckoutPayment(
                        params: self.getPaymentParams(),
                        env: "PROD",
                        callback: self)

而参数是

代码语言:javascript
复制
func getPaymentParams() -> Dictionary<String, Any> {
        return [
            "orderId": OrderIdForCashFree,
            "appId": CashFreeAPIKeyFromServer,
            "tokenData" : cftoken,
            "orderAmount": AmountExpectedforServer,
            "customerName": customerNameCashFree,
            "orderNote": orderNoteCashFree,
            "orderCurrency": "INR",
            "customerPhone": customerPhoneCashFree,
            "customerEmail": customerEmailCashFree,
            "notifyUrl": ""
        ]
    }

请帮帮我!

EN

回答 1

Stack Overflow用户

发布于 2021-06-15 14:47:50

警告看起来更好,就像这样-

代码语言:javascript
复制
Attempt to present <CFSDK.CFViewController> 
on <UINavigationController>
whose view is not in the window hierarchy!

看起来您调用这个方法太早了--可能是在viewDidLoad()

代码语言:javascript
复制
CFPaymentService().doWebCheckoutPayment(
    params: self.getPaymentParams(),
    env: "PROD",
    callback: self
)

如果视图尚未正确设置,您将收到来自UIKit的此警告。你能做的是-

  1. 通过按键启动此呼叫。/推荐(与用户在应用程序中进行交互时相同)
  2. 将呼叫延迟一段时间,例如0.5秒1秒。/惰性-仅用于测试目的

这两个都将确保视图有足够的时间显示(在呼叫发起之前),并且警告将消失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67980891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档