Здесь есть две проблемы.
Во-первых, вы не установили UIWindow
в качестве ключа и видимого элемента. Итак, добавьте эту строку кода после того, как вы установите rootViewController
:
window?.makeKeyAndVisible()
. На этом этапе ваш код будет работать, но упомянутая ошибка, вероятно, все равно будет выводиться на консоль при запуске app.
Когда вы создаете проект, XCode настраивает его так, чтобы раскадровка Main
загружалась автоматически (с отображением контроллера начального вида).
Итак, даже если вы настраиваете сами по себе window
программно, ваше приложение все еще пытается запустить контроллер начального представления в главном файле раскадровки, как об этом говорят настройки проекта.
Чтобы остановить его от пытаясь сделать это, откройте «Общие» настройки цели вашего приложения, очистите содержимое текстового поля «Основной интерфейс» и нажмите «Return», чтобы сохранить изменения.
Это обновит ваш проект info.plist
, удаление ключа / значения Main storyboard file base name
, которое вызывает автоматическое поведение c при запуске приложения.
Снимок экрана ниже: