美文网首页
runtime 拦截系统导航栏返回事件

runtime 拦截系统导航栏返回事件

作者: 众里摆渡 | 来源:发表于2020-07-28 10:34 被阅读0次

    1、既然要拦截按钮的事件,简单粗暴,先看下点击系统返回按钮后发生了什么:

    通过3断点触发,显示左边事件队列

    第二部分是按钮事件,不考虑拦截,毕竟拦截污染太严重!

    so, _UINavigationBarContentView的__backButtonAction:方法,成为最早拦截对象,试着使用runtime交换方法后调试(方法交换,网上一大堆)

    查看_UINavigationBarContentView的方法列表,

    方法列表 arg1参数

    完全没毛病,在交换方法中做一些自己需要的判断,OK,完美实现

    需求是只对网页控制器的返回处理,试图在网页控制器中对backBarButtonItem进行拦截,然并卵,runtime拦截会对所有的导航栏返回污染,不过感觉比通过shouldPopItem中处理好多了,毕竟,这是从源头控制! 有好的方案,求教......

    相关文章

      网友评论

          本文标题:runtime 拦截系统导航栏返回事件

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