Здравствуйте. Почему-то есть баг, о котором автор не говорит. При появлении изначального MainViewController возникает на секунду черный экран. Это происходит из-за асинхронного вызова замыкания в SceneDelegate. Как это можно исправить?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
if let user = Auth.auth().currentUser {
FirestoreService.shared.getUserData(user: user) { (result) in
switch result {
case .success(let muser):
let mainTabBar = MainTabBarController(currentUser: muser)
mainTabBar.modalPresentationStyle = .fullScreen
self.window?.rootViewController = mainTabBar
case .failure(_):
self.window?.rootViewController = AuthViewController()
}
}
} else {
window?.rootViewController = AuthViewController()
}
window?.makeKeyAndVisible()
}