UISwipeGestureRecognizer叫了两次?

时间:2011-01-03 13:20:12

标签: iphone uigesturerecognizer

我遇到UISwipeGestureRecognize两次调用的问题,我创建了基于tabbarcontroller的应用程序,它有4个标签。每个选项卡在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];
    }
}

当我在模拟器中向左滑动时,当控制到达[self.tabBarController setSelectedIndex:0]行时,它正在调用“didSwipeLeft”,该函数(didSwipeLeft)再次调用。 请帮帮我,如何解决问题,是否有人遇到同样的问题。 在此先感谢。

1 个答案:

答案 0 :(得分:1)

我遇到了UIImagePickerController的这种问题,我用静态int解决了这个问题。 Punt一个静态int或bool并在视图中重置它将出现并在didSwipeLeft设置它,并执行操作只有你的静态没有设置。希望有所帮助。