背景
公司的其他开发团队封装了一个通过id获取图片的方法,在这个方法的回调里通过pushViewController进入下一个页面.测试时在单个设备上出现了崩溃现象.
崩溃原因
封装的这个通过id取图片的方法在某些异常场景下回调了两次, 针对同一个VC对象,进行了两次push操作,导致崩溃.
解决方案
通过判断当前导航栏的顶端控制器是否是将要弹出的控制器类型,来判断是否已经进行了push操作.
if(![self.navigationController.topViewController isKindOfClass[groupLiveBroadcastStartViewController class]])