Методы UISplitViewControllerDelegate/UIPopoverDelegate не вызываются при пролистывании справа налево

У меня есть подкласс UISplitViewController, который реализует хуки делегата UISplitViewControllerDelegate и UIPopoverController, которые будут уведомлены, когда всплывающее окно главной панели будет представлено или закрыто через:

  1. splitViewController:popoverController:willPresentViewController:
  2. popoverControllerShouldDismissPopover:

В этом контроллере разделенного экрана presentsWithGesture установлено на YES.

Когда вызывается 1., я обязательно устанавливаю делегат для всплывающего окна (второй аргумент в вызове метода) на self.

Что работает:

  • Когда основная панель видна, когда я нажимаю за пределами основной панели, вызывается хук следует закрыть
  • Когда основная панель скрыта, когда я нажимаю кнопку на панели навигации, чтобы открыть основную панель, вызывается хук покажет
  • Когда основная панель скрыта, когда я прокручиваю слева направо, чтобы открыть основную панель, вызывается хук покажет

Что не работает:

  • Когда основная панель видна, когда я прокручиваю справа налево, чтобы скрыть основную панель, перехватчики делегатов не вызываются.

Я почти уверен, что все делегаты установлены правильно.

В отладчике я взял ссылку на память для всплывающего контроллера (который всегда один и тот же) и, проведя пальцем справа налево, подтверждаю, что его делегат по-прежнему правильно установлен, просто методы не вызываются.

Что-то не так с настройкой или это ошибка/оплошность UIKit?


person biasedbit    schedule 16.10.2013    source источник
comment
Вы уверены, что это поддерживаемый жест? Я знаю только слева направо, чтобы открыть всплывающее окно.   -  person Leo Natan    schedule 06.11.2013
comment
Я испытываю ту же проблему. Вы когда-нибудь добились прогресса в этом? Заранее спасибо.   -  person Adam Jack    schedule 17.03.2014


Ответы (1)


Немного покопавшись, я обнаружил, что есть разница между касанием снаружи (отклонение) и смахиванием (скрытие). Это то, что вам нужно, и то, что я сейчас использовал для обнаружения «смахивания»:

UISplitViewControllerDelegate splitViewController:willHideViewController:withBarButtonItem:forPopoverController:

person Adam Jack    schedule 17.03.2014