美文网首页
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