我用以下方式向客户收取付款.
PlugNPlay.presentPaymentViewController(withTxnParams: txnParam, on: parentVC) { (response, error, extraParam) in //code goes here } PlugNPlay是.的子类NSObject
因此,当我呈现支付视图控制器时,用户可以通过拖曳视图控制器来取消视图控制器。
默认情况下,每个呈现的视图控制器>IOS 13版本都启用它。
那么,如何才能禁用视图控制器的综合解雇呢?
是的,我知道我可以modalPresentationStyle属性在视图控制器上,但在PayUMoney SDK中,我没有找到任何UIViewController子类。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在iOS中,如果您想要禁用拖拽dismiss(即综合解雇)功能,您通常需要设置视图控制器的modalPresentationStyle
为.fullScreen
或.overFullScreen
。然而,由于您提到的是在使用第三方SDK(PayUMoney SDK)且没有直接访问到UIViewController子类的情况,您可能需要通过其他方式来实现这一需求。
一种可能的方法是尝试在呈现支付视图控制器之前,通过代理方法或者自定义一个类别来修改其presentation style。但请注意,这取决于PayUMoney SDK是否提供了足够的灵活性来允许这样的定制。如果SDK没有直接提供接口,以下是一种较为间接的尝试方法,但请知悉这可能不适用于所有情况,尤其是当SDK内部强制某些行为时:
modalPresentationStyle
属性。但请注意,这要求SDK允许您以这种方式扩展或替换其视图控制器。// Subclassing approach (假设PayUMoney的ViewController类名为PayUViewController)
class CustomPayUViewController: PayUViewController {
override var modalPresentationStyle: UIModalPresentationStyle {
get {
return .fullScreen
}
set {
// 可能不需要设置,因为我们总是希望它是.fullScreen
}
}
}
// 然后尝试使用您的CustomPayUViewController去呈现
使用UIPresentationController Delegate: 如果您无法直接修改视图控制器,可以考虑利用UIPresentationController的代理方法来控制交互式dismiss的行为。尽管这不能直接阻止拖拽dismiss,但可以通过代理方法监听并阻止dismiss动作的发生。不过,这需要PayUMoney SDK在展示视图控制器时允许您设置自定义的UIPresentationController或代理。
与SDK提供商联系: 最直接有效的方式可能是联系PayUMoney的客服或技术支持,询问是否有官方推荐的方式来禁用拖拽dismiss功能。他们可能提供特定的API或配置选项来满足您的需求。
由于直接操作第三方SDK的内部逻辑存在局限性,上述建议可能需要根据实际SDK的可定制程度进行调整。如果SDK本身没有提供相应的接口,那么最佳实践通常是寻求官方支持或查看SDK文档中是否有相关的配置说明。