Я использую Xcode 11 (бета3) и создаю приложение для iOS 13. В моем проекте я создал методы делегата для UIWindowSceneDelegate
, объявив его в Info.plist.
Теперь я могу создать несколько окон (и UIScene).
Как я могу получить доступ к rootViewController теперь у меня больше нет ни одного окна? Мне нужно, чтобы получить некоторую ссылку на объекты и границы, которые он содержит.
В моем AppDelegate window is nil
и в моем экземпляре ViewController (дочерний контроллер представления) я пытался использовать self.view.window.rootViewController
, но я обнаружил, что viewDidLoad()
слишком рано (я думаю), и окно все еще равно нулю, работает в viewDidAppear()
, но мне не нужно выполнять этот процесс каждый раз, когда появляется контроллер представления.
Как лучше всего использовать этот новый способ обработки сцен приложений?
Вот мой AppDelegate:
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
return true
}
func application(_ application: UIApplication,
configurationForConnecting connectingSceneSession: UISceneSession,
options: UIScene.ConnectionOptions) -> UISceneConfiguration {
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
Моя СценаДелегат:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// yes it's empty, I'm using storyboard
}