РЕДАКТИРОВАТЬ : я думаю, что потенциальная проблема заключается в том, как V C представляется:
VC.modalPresentationStyle = .overCurrentContext
Это приводит к тому, что UITransitionView
и мой навигационный контроллер находятся в тот же уровень иерархии представлений, поэтому, когда я сохраняю window.rootViewController
, я сохраняю неправильный для сохранения. Если я уберу эту строчку, все будет работать так, как ожидалось Однако мне нужно, чтобы оно было overCurrentContext
или overFullScreen
, потому что мне нужно, чтобы представленный вид был полупрозрачным и отображал вид снизу.
У меня проблема, присутствует на iOS 12, но не на 13, когда мое приложение не отображает мой root контроллер представления после его установки.
Есть представление контроллер, представленный поверх другого контроллера представления, встроенного в контроллер навигации.
В какой-то момент выполняется следующая логика c (более или менее):
var savedVC: UIViewController
...
savedVc = window.rootViewController
window.rootViewController = <...>
<some business logic here...>
UIWindow window = UIApplication.shared.keyWindow!
window.rootViewController = savedVc
В В конце концов, моя иерархия представлений содержит только представленный контроллер представлений.
Однако контроллер навигации по-прежнему является корневым контроллером окна!
И если я отклоню этот контроллер вида, приложение покажет мне пустой экран. На iOS 13 это работает как положено, я вижу контроллер под представленным.