今天遇到一个非常头痛的报错、在dismiss一个present出来的VC的时候系统crash了,而且只有iOS7才会crash。又是头痛的版本兼容bug、其实自己之前遇到过这个bug可是当时没有记录下来所有今天才花费了很长时间、这次一定记录下来。
其实系统crash时停留以及打印出来的log没有太大的参考意义、这次我们是通过git版本追溯才确定了最终的代码改动点,根本原因是我们的业务代码在present之前的ViewWillDisappear里面设置了导航栏的显示、而且设置导航栏是有隐式动画的、此时present的动画也在继续所以iOS7上面的动画冲突导致crash了……(不知道是不是iOS7系统的bug)
解决方案
使用performSelector方法将设置导航栏的方法放到下一个runloop上、万能的runloop又发挥了重要作用
网友评论