隐藏导航栏后实现全屏pop

2020-06-11  本文已影响0人  不得不开
func fullPop() {
        
        //获取手势
        guard let systemGes = navigationController?.interactivePopGestureRecognizer else {
            return
        }
        //获取手势所在view
        guard let gesView = systemGes.view else {
            return
        }

        //获取系统手势name
        var count: UInt32 = 0
        let ivars = class_copyIvarList(UIGestureRecognizer.self, &count)!
        for i in 0..<count {
            let ivar = ivars[Int(i)]
            let name = ivar_getName(ivar)
            
            print(String(cString: name!))
        }
        
        //获取系统target以及action
        let targets = systemGes.value(forKey: "_targets") as? [NSObject]
        guard let targetObjc = targets?.first else {
            return
        }
        
        
        guard let target = targetObjc.value(forKey: "target") else {
            return
        }
        
        let action = Selector(("handleNavigationTransition:"))
        
        //创建手势
        let panGes = UIPanGestureRecognizer()
        gesView.addGestureRecognizer(panGes)
        panGes.addTarget(target, action: action)
    }
11825378-1fc7dc9b08d87b0b.png
上一篇下一篇

猜你喜欢

热点阅读