1. ホーム
  2. ios

[解決済み] UINavigationControllerでleftBarButtonItemを設定した後、戻る/左スワイプジェスチャーを有効にするには?

2023-05-14 10:14:20

質問

とは逆の問題が発生しました。 ここで . デフォルトでは iOS7 の背面スワイプジェスチャは UINavigationController のスタックをポップすることができます。 ViewController . 今、私はすべての self.navigationItem.leftBarButtonItem のスタイルをすべての ViewControllers .

以下はそのコードです。

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:LOADIMAGE(@"back_button") style:UIBarButtonItemStylePlain target:self action:@selector(popCurrentViewController)];

の後に navigationController.interactivePopGestureRecognizer は無効になります。ポップアップジェスチャを有効にするには、カスタム leftBarButtonItem ?

ありがとうございます。

どのように解決するのですか?

まず、viewDidLoadにdelegateを設定します。

self.navigationController.interactivePopGestureRecognizer.delegate = self;

そして、プッシュ時のジェスチャーを無効にする。

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
    [super pushViewController:viewController animated:animated];
    self.interactivePopGestureRecognizer.enabled = NO;
}

そしてviewDidDisappearで有効にします。

self.navigationController.interactivePopGestureRecognizer.enabled = YES;

また UINavigationControllerDelegate をビューコントローラに追加します。