Жест панорамирования не работает с SWRevealViewController
Я использую SWRevealViewController, чтобы иметь боковое меню в моем приложении iOS. Контроллеры как переднего, так и заднего вида являются настольными. У моего контроллера переднего вида есть элемент кнопки панели, который отображает контроллер заднего вида, и я также включил жест панорамирования для отображения контроллера заднего вида. Проблема в том, что распознаватель жестов панорамирования работает только в первый раз, но кнопка панели всегда запускает контроллер заднего вида.
Если бы кто-то мог помочь мне исправить это, чтобы жест панорамирования всегда работал, это было бы здорово, спасибо.
SWRevealViewController, который переключает оба представления, запускается из раскадровки. Вот код для контроллера вид спереди:
- (void)setUpSidebarMenu {
self.navigationItem.leftBarButtonItem.target = self.revealViewController;
self.navigationItem.leftBarButtonItem.action = @selector(revealToggle:);
[self.tableView addGestureRecognizer:self.revealViewController.panGestureRecognizer];
[self.tableView addGestureRecognizer:self.revealViewController.tapGestureRecognizer];
}
Вот код для контроллера заднего вида:
- (void)setUpSidebarMenu {
self.navigationItem.leftBarButtonItem.target = self.revealViewController;
self.navigationItem.leftBarButtonItem.action = @selector(revealToggle:);
[self.tableView addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}
1 ответ
Решено, что в контроллере заднего вида не должно быть кода для панорамирования, а вместо добавления жестов self.tableView
добавить их в self.view
:
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
[self.view addGestureRecognizer:self.revealViewController.tapGestureRecognizer];