Как закрыть главный контроллер вида в splitViewController
У меня есть приложение с контроллером разделенного представления. У меня также есть параметр, который переопределяет коллекцию признаков, поэтому все устройства настроены на классы обычного размера (вместо компактных для iPhone).
У меня также есть настройка в приложении, которая позволяет пользователям переключать "разделенный вид". Это просто переключает возвращаемое значение для targetDisplayModeForActionInSplitViewController
от UISplitViewControllerDisplayModeAllVisible
в UISplitViewControllerDisplayModeOverlay
,
Большинство моих контроллеров представления загружаются через сегменты в раскадровке, однако некоторые загружаются программно (например, [self presentViewController...]).
Проблема, с которой я сталкиваюсь, заключается в том, что, когда режим отображения установлен в режим "Наложение", когда любое из представлений загружается программно, главный контроллер представления не разрушается. Я пытался отклонить его с помощью кода из похожих вопросов, но безуспешно. Кто-нибудь знает, как это сделать?
1 ответ
Разобрался для кого-то еще с такой же проблемой. Ручная установка предпочтительного режима отображения на скрытый автоматически скроет контроллер вида. В моем классе контроллера разделенного представления я просто добавил
-(void)setDisplayModeHidden {
self.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}
И зарегистрировал его в качестве наблюдателя в NSNotificationCenter. Всякий раз, когда мне нужно закрыть контроллер представления, я просто вызываю функцию, и она скрывает это!