我遇到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)再次调用。
请帮帮我,如何解决问题,是否有人遇到同样的问题。
在此先感谢。
答案 0 :(得分:1)
我遇到了UIImagePickerController的这种问题,我用静态int解决了这个问题。 Punt一个静态int或bool并在视图中重置它将出现并在didSwipeLeft设置它,并执行操作只有你的静态没有设置。希望有所帮助。