1. 程式人生 > >iOS開發 PushViewController卡死或者popViewController時候卡死的可能原因之一

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;

這是我解決的辦法,如果有更簡單的方法,歡迎指教