Предположим, что вы хотите обнаружить пролистывания влево на панели навигации, вы можете сделать что-то вроде при создании контроллера навигации :
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewSwipedLeft:)];
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[self.navigationController.navigationBar addGestureRecognizer:swipeLeft];
, а затем создайте метод, подобный приведенному ниже, для его обработки:
-(void) didSwipedLeft: (UISwipeGestureRecognizer *) gesture {
if (gesture.state != UIGestureRecognizerStateEnded) {
return;
}
//do something
}
OBS: поскольку ваш контроллер навигации является классом, который будет оставаться активным в течение нескольких этапов жизненного цикла приложения, важно обратить на это внимание и добавлять распознаватель жестов только при создании контроллера навигации (что означает только добавление один раз), чтобы вы не накладывали друг на друга распознаватель жестов, что приведет не только к утечке памяти, но и может вызвать вызов вашего метода didSwipedLeft
более одного раза.