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

2024-04-22  本文已影响0人  伊路顺峰

今天测试提了一个问题:在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
    }
}

然后问题解决。

上一篇下一篇

猜你喜欢

热点阅读