2011-01-03 14 views
3

Ich habe ein Problem mit UISwipeGestureRecognize zweimal aufgerufen, ich erstellte TabbarController-basierte Anwendung mit 4 Registerkarten. Jede Registerkarte hat UINavigationController unter diesem UIViewController, dort habe ich unten Code in der 3. Registerkarte implementiert.UISwipeGestureRecognizer zweimal aufgerufen?

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]; 
    } 
} 

Wenn ich Swipe in Simulator links zu tun, es ruft "didSwipeLeft", wenn die Steuer [self.tabBarController setSelectedIndex:0] Linie erreicht, die Funktion (didSwipeLeft) ruft wieder. Bitte helfen Sie mir, wie das Problem zu lösen ist, hat jemand das gleiche Problem konfrontiert. Vielen Dank im Voraus.

+0

Haben das gleiche Problem! – ToddH

Antwort

1

Ich hatte diese Art von Problem mit UIImagePickerController, und ich löse es mit einem statischen Int. Punt ein statisches int oder bool und zurücksetzen es in der Ansicht wird angezeigt und in didSwipeLeft setzen Sie es, und tun Sie die Aktion nur Ihre statische ist nicht festgelegt. Ich hoffe, das hilft.

Verwandte Themen