swift 关于FDFullscreenPopGesture的右滑返回

Posted shen5214444887

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 关于FDFullscreenPopGesture的右滑返回相关的知识,希望对你有一定的参考价值。

关于导航栏右滑返回的工具库 FDFullscreenPopGesture 是 OC 版本,用了 runtime 等各种骚操作

关于 swift ,我在 UINavigationController 的 viewDidLoad 方法中

class GMNavigationController: UINavigationController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.addPanGes()
    }
    /// 将导航栏的右滑手势添加到 view 上面
    func addPanGes() {
        
        interactivePopGestureRecognizer?.delegate = self
        guard  let targets = interactivePopGestureRecognizer?.value(forKey: "_targets") as?[AnyObject] else {
            return
        }
        let dict = targets[0]
        //拿到action
        let target = dict.value(forKey: "target") as Any
        //通过字典无法拿到action,这里通过Selector方法包装action
        let action = Selector(("handleNavigationTransition:"))
        //拿到target action 创建pan手势并添加到全屏view上
        let gesture = UIPanGestureRecognizer(target: target, action: action)
        view.addGestureRecognizer(gesture)
     // 这里需要将导航栏的右滑手势去掉 self.interactivePopGestureRecognizer
?.isEnabled = false } }

 

这样就可以达到的效果了。

 

但是这样做的话,UINavigationBarDelegate的代理方法就不走了,没法做到监听导航栏返回的。又是一个痛点,待研究。。。

 


以上是关于swift 关于FDFullscreenPopGesture的右滑返回的主要内容,如果未能解决你的问题,请参考以下文章

关于Swift类继承的一点小问题

swift 关于FDFullscreenPopGesture的右滑返回

1.Swift教程翻译系列——关于Swift

将关于录制麦克风信号的旧 swift 代码行翻译为 swift 4.2

关于身份验证问题的 Swift 状态码 401

Swift - 关于导入包与类