1

アプリでスワイプして ViewControllers をプッシュまたはポップしたいのですが、それにスワイプジェスチャを追加できることがわかっています。しかし、画面をスワイプすると、現在のViewControllerの後にスワイプジェスチャが続き、次のViewControllerがスワイプだけで押し込まれます。どうすればこれを行うことができますか、ありがとう!

4

3 に答える 3

2

UINavigationController;では不可能です。を組み込んだ独自のナビゲーションコントローラー(非常に簡単なはずです)を作成する必要がありますUIPanGestureRecognizer

iOS 7用の編集:おそらくを使用することをお勧めしますUIScreenEdgePanGestureRecognizer

于 2013-03-21T06:31:47.780 に答える
1

ジェスチャー レコグナイザーには、ボタンと同じようにアクション メソッドがあります。これをアクションメソッドに入れるだけです:

NextViewController *next = [[NextViewController alloc] init ....];
[self.navigationController pushViewController:next animated:YES];
于 2013-03-21T06:27:40.310 に答える
0

ジェスチャ レコグナイザーについてお読みください。それらを作成してオブジェクトに追加できます。例えば

UILongPressGestureRecognizer *longTap = [[UILongPressGestureRecognizer alloc] 
                                         initWithTarget:self 
                                         action:@selector(longPress:)];
longTap.minimumPressDuration = 1.0;
[cell addGestureRecognizer:longTap];

ここで、LongPress 認識エンジンを作成し、セルに追加しました。セルを長押し (1.0 秒) すると、セレクター (longPress:) が呼び出されます。長押しでどんなコードでも作れます。

-(void)longPress : (UILongPressGestureRecognizer *)rec {
   if (rec.state == UIGestureRecognizerStateBegan) {
   NSLog (@"I've longPressed");
   }
}

同じ方法で、さまざまな認識機能を使用できます。

プッシュとポップについて。これらはナビゲーション コントローラのメソッドです。プッシュ - あなたが彼に見せたコントローラーで前進します。

NextController *goNext = [[NextViewController alloc] init];
[self.navigationController pushViewController:goNext animated:YES];

それは NextController に行きます。ポップ - 前のコントローラーに戻ります。

ここでは、前のコントローラーを表示する必要はありません。navControllerに戻って言うだけです

 [self.navigationController popViewControllerAnimated:YES];
于 2013-03-21T06:42:20.997 に答える