NavigationControllerでのエッジスワイプジェスチャー(スワイプによる階層戻し)を無効にする(iOS7)

投稿者: | 2014年6月28日
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

NavigationControllerベースのアプリはエッジスワイプジェスチャーで階層を戻す(前画面に戻る)ことができます。

 

こういうことですね。iPhoneユーザの中には案外気付いていない方もいるのではないでしょうか。地味に便利なのですが、画面の左端、画面上というよりはiPhone本体のフレームから画面に滑らすような操作になりますので、持ち方によってはやり辛いことも。

iOS7から標準でサポートされていますので、NavigationControllerを組み込んだアプリでは意識せずとも実装されますが、アプリの仕様によってはこのデフォルトの機能が他のジェスチャーとの関係でジャマになることがあります。

無効にしてみましょう。

[code language=”objc”]
– (void)viewDidLoad
{
[super viewDidLoad];

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

・・・・・・・・
[/code]

iOS6以前では対応していませんので、respondsToSelectorでプロパティの有無をチェックしてから値を設定しています。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください