iOS開發 PushViewController卡死或者popViewController時候卡死的可能原因之一
當點選後push介面時候,介面沒有反應,同時表現出整個介面像是卡住,但是通過層級關係圖可以看出來要push介面的view的那些東西都已經出現,這時候可以考慮一下是手勢衝突或者view的遮蓋,我這邊的是因為自定義了UINavigationController,所以設定了系統代理新增右滑退出手勢的時候,沒有禁用第一個控制器的手勢,導致平時操作時候偶現介面卡死,我的解決的方法是在自定義的導航欄控制器裡重新push方法和pop方法:
push方法
-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated{
self.interactivePopGestureRecognizer.enabled = YES;
viewController.hidesBottomBarWhenPushed = YES;
[super pushViewController:viewController animated:animated];
}
pop方法
- (UIViewController *)popViewControllerAnimated:(BOOL)animated{
self.interactivePopGestureRecognizer.enabled = YES;
return [super popViewControllerAnimated:animated];
}
不管是push或者pop方法都啟用了右滑手勢,然後在你第一個控制器裡設定禁用右滑手勢
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
這是我解決的辦法,如果有更簡單的方法,歡迎指教