美文网首页
Swift - 监听返回按钮及侧滑返回事件

Swift - 监听返回按钮及侧滑返回事件

作者: KingWorld | 来源:发表于2021-10-18 14:30 被阅读0次

    今天记录一下监听返回按钮及侧滑返回事件的方法。

    项目中,有些特殊的需求,需要监听左上角返回按钮的触发事件,之前的遇到这种问题,本能的想到重写leftBarButtonItem,但是重写后,侧滑事件就会被禁止,即使强制开启侧滑,但是侧滑事件返回后,并没有触发我们的特殊需求。

    在不重写leftBarButtonItem的前提下,基于这种特殊需求,我拦截了系统的按钮返回事件和侧滑返回事件,实现一个代理,来统一管理返回事件中,需要实现的特殊需求。而为了不侵入项目,将此协议,放在扩展汇中。在需要触发返回事件的控制器中,调用协议方法即可。

    协议:

    /// 导航返回协议
    @objc protocol NavigationProtocol {
        /// 导航将要返回方法
        ///
        /// - Returns: true: 返回上一界面, false: 禁止返回
        @objc optional func navigationShouldPopMethod() -> Bool
    }
    

    控制器扩展中,实现此协议

    导航控制器中,遵守 UINavigationBarDelegate, UIGestureRecognizerDelegate, 重写

    public func navigationBar(_ navigationBar: UINavigationBar, shouldPop item: UINavigationItem) -> Bool {}
    

    重写此协议方法的目的是拦截返回按钮事件;

    重写

    public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {}
    

    重写此协议方法的目的是拦截侧滑返回事件。

    具体实现方法,请下载 demo,密码:vh8t

    有个朋友说我用百度云太low,其实我就是懒而已。。。

    在这里提供下Github地址:https://github.com/linjieYang/NavigationGoBack
    ————————————————
    版权声明:本文为CSDN博主「LJ_Y」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/a645258072/article/details/80192020

    相关文章

      网友评论

          本文标题:Swift - 监听返回按钮及侧滑返回事件

          本文链接:https://www.haomeiwen.com/subject/cflnoltx.html