UINavigationController interactivePopGestureRecognizer работает ненормально в iOS7
В iOS7 у нас есть новый "салфетки слева направо", это очень полезная функция, но теперь у меня есть проблема с ней.
Я использую этот код для настройки обратной кнопки в UINavigationBar
.
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:view];
но это отключит жест "салфетки слева направо", поэтому я использую следующий код, чтобы поддерживать жест.
self.navigationController.interactivePopGestureRecognizer.delegate = self
И затем я обнаружил, что жест работает ненормально, если в текущем ViewController есть tableView, когда прокрутка tableView прокручивается, жест не запускается. Теперь жест не может быть легко запущен, есть ли способ исправить его?
Ответы
Ответ 1
Этот код может хорошо работать для меня.
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return [gestureRecognizer isKindOfClass:UIScreenEdgePanGestureRecognizer.class];
}
Ответ 2
Установка interactivePopGestureRecognizer.delegate
в self
- это только первый шаг. Второй шаг - реализовать
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return ![otherGestureRecognizer isKindOfClass:UIPanGestureRecognizer.class];
}
Тест против распознавателя жестов панорамы необходим для блокировки вертикальной прокрутки прокрутки или представления таблицы во время выполнения интерактивной поп-музыки.
Ответ 3
Добавить в контроллер класса "UIGestureRecognizerDelegate"
в ViewDidApper добавить
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.navigationController?.interactivePopGestureRecognizer.delegate = self
}
=)
Ответ 4
Решение, отправленное Wei, не помогло мне. Мои экраны заморозили признание любых жестов вообще.
Теперь я использую AHKNavigationController от Arkadiusz Holko
http://holko.pl/ios/2014/04/06/interactive-pop-gesture/
Мне понадобилось 30 секунд, чтобы пройти через CocoaPods и еще 30 секунд, чтобы настроить как пользовательский класс моего NavigatonController через раскадровки.