猜測(cè)可能原因
1、底部Tabbar隱藏、顯示調(diào)用頻繁,或者重復(fù)調(diào)用
2、右劃返回手勢(shì)沖突
研究歷程
1、多次使用,發(fā)現(xiàn)出現(xiàn)的情況多在一級(jí)頁(yè)面跳轉(zhuǎn)到二級(jí)頁(yè)面,Tabbar卡死,點(diǎn)Home鍵切換APP到后臺(tái),重新打開(kāi),右劃返回后即可使用
得出結(jié)果
1、在RootViewController右劃返回手勢(shì)也可以響應(yīng),因?yàn)闆](méi)有上一級(jí)頁(yè)面,導(dǎo)致整個(gè)程序頁(yè)面不響應(yīng)
APP做出如下修改
在一級(jí)頁(yè)面進(jìn)入和離開(kāi)時(shí) 分別添加禁用和開(kāi)啟右滑返回手勢(shì)
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
[self forbiddenSideBack];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
[self resetSideBack];
}
禁用手勢(shì)
/**
* 禁用邊緣返回
*/
-(void)forbiddenSideBack{
self.isCanSideBack = NO;
//關(guān)閉ios右滑返回
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate=self;
}
}
/*
恢復(fù)邊緣返回
*/
- (void)resetSideBack {
self.isCanSideBack=YES;
//開(kāi)啟ios右滑返回
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {
return self.isCanSideBack;
}