码迷,mamicode.com
首页 > 编程语言 > 详细

swift 关于FDFullscreenPopGesture的右滑返回

时间:2019-01-18 23:14:50      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:dict   val   contain   time   value   int   err   handle   container   

关于导航栏右滑返回的工具库 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的右滑返回

标签:dict   val   contain   time   value   int   err   handle   container   

原文地址:https://www.cnblogs.com/shen5214444887/p/10290038.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!