Я бегу на вопрос, где после изменения rootViewController
на моем UINavigationController
и изменить его обратно к моей первоначальной UINavigationController
, UISplitViewController
начинает показывать как это мастер и подробно просмотр в телефонном устройстве на компактной/портретной ориентации (так что не только на телефонах с дополнительным размером, но и на других).Изменение RootViewController для Nav вызывает UISplitViewController, чтобы показать подробно на Compact портретной ориентации
Базовый обзор архитектуры: A TabBarController
Дома несколько вкладок. Один из этих вкладок - UISplitViewController
. В настоящее время я переопределять следующее, чтобы убедиться, что MasterViewController
показано на компактных ориентациях:
func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
// this prevents phone from going straight to detail on showing the split view controller
return true
}
Это прекрасно работает и отображает мастер на портрете, как и ожидалось. В любой момент нажатием кнопки на другой вкладке можно создать новый экземпляр UINavigationController
и отобразить его, в котором я делаю ниже, чтобы изменить rootViewController
на вновь созданный UINavigationController
на дисплее:
let appDelegate = UIApplication.shared.delegate
appDelegate?.window??.rootViewController = newNavVC
На распускать, я 'просто поменяв UINavigationController
обратно на оригинал по тому же коду выше. Однако, как только я сделаю это один раз (создаю nav/display/увольнение), и я переключу свою вкладку обратно на страницу с UISplitViewController
, она сама изменится, чтобы показать бок о бок подробное представление. Я не знал, что это возможно в портретном режиме для компактной калибровки. Я попытался перейти на любой из 4 предпочтительных режимов отображения в UISplitViewController
, но это не исправить.
Ниже приведено то, на что это похоже (симулятор iPhone 6), я пропускаю делегатов или недоразумение, рушится?
Не нужно сообщать нам, кто вы и почему вы публикуете сообщения. Просьба указать соответствующие биты ссылки, чтобы упростить чтение здесь. – nloewen
Спасибо за подсказку! Ответ изменен. –