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?
risposta
Il riconoscimento di gesture pop interattivo è esposto tramite la proprietà UINavigationController
interactivePopGestureRecognizer
. È 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
Perfetto! È quello che volevo grazie. – Steven
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
}
}
questo non risponde per me ... volevo solo stampare "ciao" sul gesto riconoscere –
'Non lo disabiliterò'. Lo fai sembrare come se fossi "cattivo" –
È solo perché ho letto un argomento simile su "come disabilitare il gesto di scorrimento in uinavigationcontroller". Quindi volevo essere chiaro ^^ – Steven