2

これは私の最初の質問ですが、このサイトをこの最後の月にたくさん使っています。UISwipeGestureRecognizerDirectionRight iOS 5.1を使用してDetailViewController.m内で作業していません

私の問題:私はi-Padの分割ビュープロジェクトを持っています。 DetailViewControllerではUIButtonを使用します。 ここDetailViewController.hからいくつかのコードです:

@property (strong, nonatomic) IBOutlet UIButton *button; 
- (void)swipeRightDetected:(UISwipeGestureRecognizer *)recognizer; 

DetailViewController.m私はちょうどこの操作を行います。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self configureView]; 

    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeRightDetected:)]; 
    swipeRight.direction = UISwipeGestureRecognizerDirectionRight; 
    [self.button addGestureRecognizer:swipeRight]; 
} 

- (void)swipeRightDetected:(UISwipeGestureRecognizer *)recognizer 
{ 

    if (recognizer.view == self.button) { 
    NSLog(@"YEAH"); 
    } 
} 

今問題がある:それはiOSの5.0.1と完全に仕事をしていたが、前の今はそれ以上は機能しません。それは他の方向に働きますが、RightViewではなく、DetailViewControllerでのみ動作します! これは、あなたがスラップを非常に非常に速く行う場合にのみ機能します!

私はバグだと思います。どうすればいいですか?たぶんAppleフォーラムに同じ質問を投稿してください。 ありがとうございます、あなたはすべて素晴らしいです! Marco

+0

Interfaceでこれをリンクしていますか? –

+0

はい。正しくリンクされています... 5/6回ごとに1回動作します!!それ以外の方向ではいつものようにうまくいっています! –

答えて

7

これは、iOS 5.1のスプリットビューコントローラの新しい「スライドプレゼンテーションスタイル」と関係があります。 release notesは、presentsWithGestureNOに設定することでこの動作を無効にすることができると言います。

また、gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:をジェスチャ認識プログラムのデリゲートに実装することもできます。

+0

thx thx thx !!私はリリースノートで意味するものを持っていなかった!今私はそれを得た!もう一度!! –

+0

あなたは私の日を救ってくれてありがとう。 – bselvan

+0

ありがとう、私は私の髪を引っ張っていた! – Chris

1

私は露骨にこのStackOverflowのページに素晴らしい先端からこの答えをコピーしています:あなたのAppDelegate.mファイルで Master Table Application

、あなたの「didFinishLaunchingWithOptions」関数の最後に次の行を追加します。

splitViewController.presentsWithGesture = false; 

突然右スワイプがMaster-Detailページで再び機能します。

(安心しました)

関連する問題