一部のビューコントローラーに「interactivePopGestureRecognizer」を追加し、トップバーのボタンも返します。ユーザーがその時点でポップ ジェスチャとプッシュ/ポップ ビューを使用すると、トップ ナビゲーション コントローラー ビューがフリーズします。しばらくすると、「[viewcontroller hash]: message sent to deallocated instance.」でクラッシュします。
方法
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
//Pop GESTURE
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = true;
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
-(void)viewDidDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
//Remove Pop Gesture
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = false;
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}
}
DELEGATE METHOD
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
// add whatever logic you would otherwise have
return YES;
}
TabBar タイプのアプリケーションがあります。