0

これは非常に奇妙です。右舷から 6 タブ タブ バーの最初のタブのビューに Swipe Gesture Recognizer を追加しました。左方向に設定し、action として firstTabViewController.h に接続しました。そして、それは完璧に機能します。

ここで、同じ方法で「正しい方向」のスワイプ ジェスチャ認識機能をこの最初のタブに追加しようとしても、アクションは登録されません。

また、別のタブ (インデックス 0 のタブではない) で同じことをしようとしたり、作業中のタブをタブ バーの別の位置に移動しようとすると、スワイプすると不正なアクセス エラーでアプリがクラッシュします。 .

firstTabViewController.h

- (IBAction)swipeLeft:(id)sender;   // Works fine
- (IBAction)swipeRight:(id)sender;  // Doesn't even register

firstTabViewController.m

- (IBAction)swipeLeft:(id)sender {
    int nextIndex = CURRENT_INDEX + 1;  // I did modify this accordingly when the tab was moved

    [self.tabBarController setSelectedIndex:nextIndex];
    NSLog(@"Swipe left");

}

- (IBAction)swipeRight:(id)sender {
    NSLog(@"Swiped Right");
}
4

1 に答える 1

3

これをテストしただけで動作します:

UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)];
swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeLeft];
swipeLeft.delegate = self;
[swipeLeft release];

UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeRight];
swipeRight.delegate = self;
[swipeRight release];

-(void) swipeRight:(UISwipeGestureRecognizer *) recognizer {
    if (recognizer.direction == UISwipeGestureRecognizerDirectionRight)
        NSLog(@"swipe right");
}

-(void) swipeLeft:(UISwipeGestureRecognizer *) recognizer {
    if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
        NSLog(@"swipe left");

}
于 2012-07-12T19:28:19.203 に答える