3

UISwipeGestureRecognize が 2 回呼び出されることに問題があります。4 つのタブを持つ tabbarcontroller ベースのアプリケーションを作成しました。そのUIViewControllerの下にUINavigationControllerを持つ各タブには、3番目のタブのコードの下に実装されています。

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

- (void) didSwipeLeft:(UISwipeGestureRecognizer *)sender {
    NSLog(@"Left..");
    if ((sender.state == UIGestureRecognizerStateEnded)) {
        [self.tabBarController setSelectedIndex:0];
    }
}

シミュレーターで左スワイプを行うと、コントロールがラインに到達すると「didSwipeLeft」が呼び出され[self.tabBarController setSelectedIndex:0]、関数(didSwipeLeft)が再度呼び出されます。問題を解決する方法を教えてください。同じ問題に直面した人はいますか。前もって感謝します。

4

1 に答える 1

1

UIImagePickerControllerでこの種の問題があり、静的intで解決しました。静的 int または bool をパントし、それをビューにリセットすると表示され、didSwipeLeft でそれを設定し、静的のみが設定されていないアクションを実行します。それが役立つことを願っています。

于 2011-01-03T14:23:15.577 に答える