Как закрыть главный контроллер вида в splitViewController

У меня есть приложение с контроллером разделенного представления. У меня также есть параметр, который переопределяет коллекцию признаков, поэтому все устройства настроены на классы обычного размера (вместо компактных для iPhone).

У меня также есть настройка в приложении, которая позволяет пользователям переключать "разделенный вид". Это просто переключает возвращаемое значение для targetDisplayModeForActionInSplitViewController от UISplitViewControllerDisplayModeAllVisible в UISplitViewControllerDisplayModeOverlay,

Большинство моих контроллеров представления загружаются через сегменты в раскадровке, однако некоторые загружаются программно (например, [self presentViewController...]).

Проблема, с которой я сталкиваюсь, заключается в том, что, когда режим отображения установлен в режим "Наложение", когда любое из представлений загружается программно, главный контроллер представления не разрушается. Я пытался отклонить его с помощью кода из похожих вопросов, но безуспешно. Кто-нибудь знает, как это сделать?

1 ответ

Решение

Разобрался для кого-то еще с такой же проблемой. Ручная установка предпочтительного режима отображения на скрытый автоматически скроет контроллер вида. В моем классе контроллера разделенного представления я просто добавил

-(void)setDisplayModeHidden {
    self.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}

И зарегистрировал его в качестве наблюдателя в NSNotificationCenter. Всякий раз, когда мне нужно закрыть контроллер представления, я просто вызываю функцию, и она скрывает это!

Другие вопросы по тегам