iOS自定义导航栏返回按钮出现的奇怪问题

今天测试提了一个问题:在TabBarViewControllercurrentViewController 页面屏幕左侧边缘向右滑一下(就是那种push到新页面后侧滑返回手势),点击当前页面的按钮或者其他View想要跳转到下一个ViewController ,发现跳转失败(实际不是跳转失败,而是新页面出现在了当前页面的下面,当前页面把新页面遮住了),我的项目类似于微信那样,有5个TabBarItem,对应有5个页面,在每个页面未跳转新页面前做这种侧滑手势都会出现这种问题。
我这个项目由于要自定义导航栏返回按钮,所以我看到这个问题首先想到的是跟自定义返回按钮有关,众所周知,自定义返回按钮后侧滑手势就会失效,需要重写代理self.interactivePopGestureRecognizer?.delegate = self,重写代理后没有重写代理里面的方法,于是把这里面的方法好好看了一下(可参考网上文章),把问题锁定在 gestureRecognizerShouldBegin这个代理方法的实现上,在首页的时候,需要忽略手势,只有在push 到新的ViewController 后才需要识别手势:

extension BaseNavigationController {
    //重写代理方法
    func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        if (children.count <= 1) {
            return false
        }
        return true
    }
}

然后问题解决。

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

相关阅读更多精彩内容

友情链接更多精彩内容