在项目中,由于导航上面左边和右边按钮需自定义,为全局通用,便自定义了UINavigationController导航。可在app使用过程中,有时总会出现卡机情况,但大部分时间不会出现,出现卡机后按home键退出后,再进入app就到了之前点击的界面。不闪退,也无异常。所以该问题找起来特别麻烦,没办法只能一个个去排除。之前不知是自定义导航问题,排除了好几个原回,开始以为是环信把主线程堵死了,后来发现不是。后面以为是列表加载图片导致,发现也不是。问过一些朋友,有的说的自动布局问题,有的说是手势问题.......
经过跟之前版本对比,才锁定是自定义导航手势问题。在自定义导航中实现UIGestureRecognizerDelegate代理。实现gestureRecognizerShouldBegin方法。代码如下:
@interface ADNavigation2Controller : UINavigationController<UIGestureRecognizerDelegate,UINavigationControllerDelegate> @end
//TODO 解决手势卡顿现象 - (BOOL) gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{ if (gestureRecognizer == self.interactivePopGestureRecognizer) { return (adBaseViewController == self.topViewController); } return YES; }