ios导航栏按钮失效问题

有这么一个bug,困扰了我司好多年。如下图中的返回和充值说明两个按钮,有的时候点击没有反应,而且是全局性质的,即利用左滑返回后进入其他页面,其他页面的导航栏按钮点击也没有反应。


ios导航栏按钮失效问题_第1张图片
image.png

解决bug最好的途径之一是完全复现bug,然后仔细审查代码。
我也是偶然的机会,完全复现了此bug,具体过程就不说了,直接上结论了。


ios导航栏按钮失效问题_第2张图片
image.png

如上图,事故原因是顶部toast隐藏并挡住了顶部导航了,导致顶部导航栏点击失效。经查询代码,是因为使用的CRToast库内部的bug,这个库从16年就停止维护不再更新了。
 pod "CRToast", "~> 0.0.7"

如果你使用动画的方式dissmiss一个还未来得及展示的toast,就会出现这个bug

CRToastManager.dismissAllNotifications(true)

所以正确的使用方式是等toast完全展示出来再使用带动画的dissmiss或使用不带动画的dissmiss。
谨此记录以免后人采坑。

你可能感兴趣的:(ios导航栏按钮失效问题)