最近在項目中出現app卡死現象,找了很久終于是找到原因,原來是在一級頁面也進行了右滑返回手勢,導致出現的app卡死,只有按home鍵回到桌面,再進入app才能恢復。
于是在網上找的解決辦法,給大家分享下,希望能幫助到和我一樣遇到這個問題的大兄弟
個人思路:
1 設置一個bool 來判斷時候在一級頁面開啟右滑返回
2 在viewDidAppear和viewDidDisappear方法里分別關閉、開啟右滑返回手勢
3 大功告成
廢話不多說,上代碼
@property(nonatomic,assign)BOOL isGesture;//手勢是否啟動
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
//防止在一級頁面右滑,出現卡死現象
[self closeGesture];
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
//防止在一級頁面右滑,出現卡死現象
[self openGesture];
}
/**
*關閉ios右滑返回
*/
-(void)closeGesture{
self.isGesture=NO;
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate=self;
}
}
/*
開啟ios右滑返回
*/
- (void)openGesture {
self.isGesture=YES;
if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate=nil;
}
}
// 最后通過bool 值判斷手勢響應
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {
return self.isGesture;
}