2011-01-03 3 views
3

У меня проблема с UISwipeGestureRecognize, вызываемая дважды, я создал приложение на основе tabbarcontroller, имеющее 4 вкладки. На каждой вкладке, имеющей UINavigationController, под этим UIViewController, там я наследовал код ниже на третьей вкладке.UISwipeGestureRecognizer называется дважды?

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) вызова снова. Пожалуйста, помогите мне, как решить проблему, есть ли у кого-то такая же проблема. Спасибо заранее.

+0

Такая же проблема! – ToddH

ответ

1

У меня была такая проблема с UIImagePickerController, и я решаю ее со статическим int. Punt статический int или bool и сбросить его в поле зрения, и в in didSwipeLeft установите его, и выполните действие, только статическое значение не установлено. Надеюсь, это поможет.

Смежные вопросы