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 установить его, и делать действие только ваша статическая не установлена. Надеюсь, это поможет.