解決APP界面卡死Bug

猜測(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;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容