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

By | 2014年6月28日

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

 

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

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

無効にしてみましょう。

- (void)viewDidLoad
{
    [super viewDidLoad];

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

	・・・・・・・・

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


コメントを残す

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