Я создаю приложение для аренды с помощью firebase. У меня есть экран WelcomeViewController. Теперь функциональность этого экрана заключается в том, что при запуске приложения оно проверяет, вошел ли пользователь в систему или нет. Если это так, то он создает экземпляр раскадровки для HomeScreenViewController, и если пользователь вышел из системы, он должен создать экземпляр раскадровки для LoginViewController. Теперь первая часть работает нормально, и раскадровка действительно создается для HomeScreenViewController, но во время второй части, когда запускается storyboard.instantiate, происходит сбой с ошибкой «найдено ноль, а принудительное развертывание необязательно». Я перепроверил все идентификаторы раскадровки и все такое. Я не могу понять.
import UIKit import Firebase
class WelcomeViewController: UIViewController {
var docRef:DocumentReference!
var Uid:String?
var homeVC:UITabBarController? = nil
override func viewDidLoad() {
super.viewDidLoad()
if Auth.auth().currentUser != nil {
//User is signed in
print("User is logged in")
docRef = Firestore.firestore().document("Users/\(Auth.auth().currentUser!.uid)")
docRef.getDocument { (docSnapshot, error) in
guard let docSnapshot = docSnapshot, docSnapshot.exists else { print("Error Founddddd");return}
let myData = docSnapshot.data()
let type = myData?["Role"] as? String ?? ""
print(type)
if type == "Owner" {
self.homeVC = self.storyboard?.instantiateViewController(identifier: "OwnerHome") as? OwnerHomeTabBarViewController
self.view.window?.rootViewController = self.homeVC
self.view.window?.makeKeyAndVisible()
}
else {
self.homeVC = self.storyboard?.instantiateViewController(identifier: "TouristHome") as? TouristHomeTabBarViewController
self.view.window?.rootViewController = self.homeVC
self.view.window?.makeKeyAndVisible()
}
}
}
else {
print("User is loggedout")
//Send User to Login/Signup Screen
let Storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let LoginVC = Storyboard.instantiateViewController(identifier: "loginScreen") as! SignInViewController
self.view.window!.rootViewController = LoginVC //Error is coming here
self.view.window?.makeKeyAndVisible()
}
}
}