我试图在注册后呈现一个视图控制器,但我一直得到错误的信息。
线程1:致命错误。当隐式拆包一个Optional值时,意外发现nil。
我使用的是Firebase,但我不知道这是否与此有关。
Auth.auth().createUser(withEmail: email, password: password, completion: {(user, error) in
guard error == nil else{
AlertController.showAlert(self, title: "Error", message: error!.localizedDescription)
return
}
guard let user = user else { return }
print(user.user.email ?? "Missing Email")
print(user.user.uid)
let changeRequest = user.user.createProfileChangeRequest()
changeRequest.displayName = username
changeRequest.commitChanges(completion: { (error) in
guard error == nil else{
AlertController.showAlert(self, title: "Error", message: error!.localizedDescription)
return
}
let homePage = HomeView()
self.present(homePage, animated: true, completion: nil)
})
})
这是我得到错误的地方。
let homePage = HomeView()
self.present(homePage, animated: true, completion: nil)
我也得到了同样的错误 对于视图控制器,我试图呈现 关于用户名这是代码 从该视图控制器。
override func viewDidLoad() {
super.viewDidLoad()
guard let username = Auth.auth().currentUser?.displayName else {return}
welcome.text = "Hello \(username)"
welcome.textColor = UIColor.systemGreen
这就是错误发生的地方。
welcome.text = "Hello (用户名)"
错误在于你初始化控制器的方式。
let homePage = HomeView()
self.present(homePage, animated: true, completion: nil)
这不是初始化控制器的正确方式。
if let homePage = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HomeViewController") {
self.present(homePage, animated: true, completion: nil)
}
替换 主 的故事板名称,其中包含控制器和 主视图控制器 与您的控制器的故事板标识符。