22

したがって、ユーザーが画面の左端を (どちらの向きでも) スワイプすると、すべてのビューが戻る (ビューをポップする) ジェスチャーを受け取っていることに気付きました (これは iOS7 の新機能です) 。

これまでのところ、次を使用して無効にしようとしましたが、役に立ちませんでした。

    [self.navigationItem setHidesBackButton:YES];

NavigationController 自体の init 内 (デリゲートがそれを使用しているように見えるため)。

4

6 に答える 6

72

obj-c

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

迅速

navigationController?.interactivePopGestureRecognizer?.isEnabled = false
于 2013-09-26T05:17:25.553 に答える
6

Gabriele のソリューションに追加します。

iOS 7 より前の iOS をサポートするには、このコードを次のようにラップする必要があります。

if([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
    }

これにより、iOS 6 および iOS 5 でのセレクターの欠落によるアプリのクラッシュが停止します。

于 2013-11-19T00:50:09.603 に答える
5

プロジェクトでこのソリューションを使用します。interactivePopGestureRecognizer のみを無効にし、別のジェスチャ認識機能を使用できるようにします。

- (void)viewDidLoad {

    [super viewDidLoad];

    if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {

        self.navigationController.interactivePopGestureRecognizer.enabled = NO;
        self.navigationController.interactivePopGestureRecognizer.delegate = self;

    }

}


- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {

    if ([gestureRecognizer isEqual:self.navigationController.interactivePopGestureRecognizer]) {

        return NO;

    } else {

        return YES;

    }

}
于 2014-11-12T12:17:20.953 に答える
3

IOS 8 (スウィフト) の場合:

class MainNavigationController: UINavigationController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.interactivePopGestureRecognizer.enabled = false

        // Do any additional setup after loading the view.
    }

}
于 2015-07-08T05:41:11.227 に答える
0

このコードは、iOS 7 より前のバージョンで使用してください

if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
于 2014-02-07T10:48:03.353 に答える