1. ホーム
  2. ios

[解決済み] iOS 7で戻るボタンを変更すると、スワイプで戻ることができなくなります。

2023-07-25 17:19:55

質問

iOS 7のアプリで、以下のようなカスタムバックボタンを設定しています。

    UIImage *backButtonImage = [UIImage imageNamed:@"back-button"];
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [backButton setImage:backButtonImage forState:UIControlStateNormal];
    backButton.frame = CGRectMake(0, 0, 20, 20);

    [backButton addTarget:self
                   action:@selector(popViewController)
         forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    viewController.navigationItem.leftBarButtonItem = backBarButtonItem;

しかし、これは、前のコントローラに移動するための iOS 7 の "左から右にスワイプ" というジェスチャを無効にします。カスタム ボタンを設定して、このジェスチャを有効にしたままにしておく方法をご存知の方はいらっしゃいますか?

EDIT。 代わりに viewController.navigationItem.backBarButtonItem を設定しようとしましたが、これは私のカスタム画像を表示しないようです。

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

重要なことです。 これはハックです。私はこれを見てみることをお勧めします 答え .

を代入した後に次の行を呼び出すと leftBarButtonItem がうまくいきました。

self.navigationController.interactivePopGestureRecognizer.delegate = self;

編集します。 で呼び出された場合は動作しません。 init メソッドで呼び出されると動作しません。これは viewDidLoad または同様のメソッドで呼び出されます。