У меня есть подкласс UISplitViewController
, который реализует хуки делегата UISplitViewControllerDelegate
и UIPopoverController
, которые будут уведомлены, когда всплывающее окно главной панели будет представлено или закрыто через:
splitViewController:popoverController:willPresentViewController:
popoverControllerShouldDismissPopover:
В этом контроллере разделенного экрана presentsWithGesture
установлено на YES
.
Когда вызывается 1., я обязательно устанавливаю делегат для всплывающего окна (второй аргумент в вызове метода) на self
.
Что работает:
- Когда основная панель видна, когда я нажимаю за пределами основной панели, вызывается хук следует закрыть
- Когда основная панель скрыта, когда я нажимаю кнопку на панели навигации, чтобы открыть основную панель, вызывается хук покажет
- Когда основная панель скрыта, когда я прокручиваю слева направо, чтобы открыть основную панель, вызывается хук покажет
Что не работает:
- Когда основная панель видна, когда я прокручиваю справа налево, чтобы скрыть основную панель, перехватчики делегатов не вызываются.
Я почти уверен, что все делегаты установлены правильно.
В отладчике я взял ссылку на память для всплывающего контроллера (который всегда один и тот же) и, проведя пальцем справа налево, подтверждаю, что его делегат по-прежнему правильно установлен, просто методы не вызываются.
Что-то не так с настройкой или это ошибка/оплошность UIKit?