UISwipeGestureRecognizer вызывается дважды?

У меня проблема с UISwipeGestureRecognize, вызываемой дважды, я создал приложение на основе tabbarcontroller, которое имеет 4 вкладки. Каждая вкладка, имеющая UINavigationController под этим UIViewController, там я реализовал ниже код в 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), вызывающая снова. Пожалуйста, помогите мне, как решить проблему, Кто-нибудь сталкивался с такой же проблемой. Заранее спасибо.

1 ответ

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

Другие вопросы по тегам