隐藏导航栏后实现全屏pop

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容