UINavigationControllerのスワイプバックが効かないとき

公開: 2015-04-04 02:36
更新: 2016-04-29 06:03

こんにちは。あっきぃです。

この前田舎へ行きました。茨城県の北の方です。

まだサクラも咲いておらず梅が満開でした。あと「よもぎの天ぷら」を食べました。めっさ美味しかったです。



さてさて、UINavigationControllerのスワイプバックが効かないなんてことが多々起きます。

UINavigationBarItemを書き換えたりすると発生します。


解決方法はズバリこれ。


UIGestureRecognizerDelegateを追加して、

@interface MYViewController() <UIGestureRecognizerDelegate>

@end

UINavigationBarItem変更後のviewDidLoad内か、viewDidAppear内でこう。

self.navigationController.interactivePopGestureRecognizer.delegate = self;

これで効くようになるはずです。



ただし、interactivePopGestureRecognizerはiOS7からのプロパティなので、iOS6以下に対応するアプリの場合は

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

とかにして

interactivePopGestureRecognizerが存在するか確認しましょう。

(もちろんiOS6以下でスワイプバック機能は無いです。)



ではでは。



この記事をシェア
この記事にコメントする
書き込む
あっきぃ(@appstars_aki)
Web、iOSなフリーランサーです。好きなものはお寿司です。でもお寿司は高いので普段は雑草とか拾ったドングリを食べています。お仕事や意味もなく毎月お小遣いをくれる人を探してます。

お仕事の依頼や自分で作ったアプリのレビューを希望しちゃう方はaki@appstars.jpまでご連絡ください。