Документация
Вы должны прочитать Статью о приложении и среде из Apple вместо UIScene
документации.
Объяснение
Как говорится о сценах :
Сцена, одновременное управление несколькими экземплярами пользовательского интерфейса вашего приложения и направление ресурсов в соответствующий экземпляр вашего пользовательского интерфейса.
Тогда у нас была только одна сцена, до iOS 13, поэтому единственное, что нам нужно для одновременного запуска ViewController
s, это несколько Window
s друг над другом . Но теперь у каждого приложения может быть одновременно запущено несколько экземпляров! Каждая сцена имеет свое собственное состояние, и она может быть на переднем плане, в то время как другие на заднем плане или приостановлены , в то время как Window
полностью зависит от самого приложения.
Представьте, что у нас есть 2 контроллера просмотра (примите во внимание, что сцен нет), работающих на левой и правой стороне устройства, а затем нам нужно показать баннер. Использование старого метода окна покажет баннер на них обоих! И если вам нужно выбрать один, вы можете в конечном итоге найти правильный контроллер и показать на нем баннер (я думаю, что все мы использовали этот метод, прежде чем ознакомиться с UIWindow
)
Итак, компания Apple представила Scene
, контейнер для каждого отдельного экземпляра приложения. Таким образом, вы можете управлять каждым из них по отдельности, и каждое из них действует как отдельное приложение. У него свои window
s и controller
s. Но все они управляются одним объектом, UIApplication.shared
, и у него есть delegate
для обработки общих событий (обычно извне приложения) и всего жизненного цикла приложения.