0

一部のビューコントローラーに「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 タイプのアプリケーションがあります。

4

1 に答える 1