8

Nel nuovo iOS 7 UINavigationController, c'è un gesto di passaggio per passare da una vista all'altra. C'è un modo per rilevare o intercettare il gesto?iOS 7 uinavigationcontroller come rilevare lo scorrimento?

+2

'Non lo disabiliterò'. Lo fai sembrare come se fossi "cattivo" –

+0

È solo perché ho letto un argomento simile su "come disabilitare il gesto di scorrimento in uinavigationcontroller". Quindi volevo essere chiaro ^^ – Steven

risposta

27

Il riconoscimento di gesture pop interattivo è esposto tramite la proprietà UINavigationControllerinteractivePopGestureRecognizer. È possibile aggiungere il proprio controllore come bersaglio del riconoscitore gesto e rispondere in modo appropriato:

@implementation MyViewController 

... 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.navigationController.interactivePopGestureRecognizer addTarget:self 
                    action:@selector(handlePopGesture:)]; 
} 


- (void)handlePopGesture:(UIGestureRecognizer *)gesture 
{ 
    if (gesture.state == UIGestureRecognizerStateBegan) 
    { 
     // respond to beginning of pop gesture 
    } 
    // handle other gesture states, if desired 
} 

... 

@end 
+0

Perfetto! È quello che volevo grazie. – Steven

7

Ecco Austin's answer, a Swift. Usando this post per costruire il selettore, ho trovato il seguente a lavorare.

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationController?.interactivePopGestureRecognizer?.addTarget(self, action:#selector(self.handlePopGesture)) 
} 

func handlePopGesture(gesture: UIGestureRecognizer) -> Void { 
    if gesture.state == UIGestureRecognizerState.Began { 
     // respond to beginning of pop gesture 
    } 
} 
+0

questo non risponde per me ... volevo solo stampare "ciao" sul gesto riconoscere –