I'm getting the following error in Swift 3:
Attempt to present alertcontroller whose view is not in window hierarchy
I have already referred to other posts on this topic to no avail. More specifically, I've implemented the change suggested in this post: AlertController is not in the window hierarchy
and I'm still receiving the same error.
What I've done is:
Create an AlertHelper.swift helper class:
class AlertHelper {
func showAlert(fromController controller: UIViewController) { let alert = UIAlertController(title: "Please Try Again", message: "Email Already In Use", preferredStyle: .alert) controller.present(alert, animated: true, completion: nil) } }
In my View Controller, under a function which is called when a button is pressed, I check to see if an email address entered by a user is already stored in my Firebase database, and if so, I try to present an "Email already in use" alert from the AlertHelper class:
Auth.auth().createUser(withEmail: email, password: password) { (user, error) in if error != nil { if let errCode = AuthErrorCode(rawValue: error!._code) { switch errCode { case .emailAlreadyInUse: let alert = AlertHelper() alert.showAlert(fromController: self) return default: print("other error") } } } else { // Inputs user email into database self.ref.child("Users").child((user?.uid)!).setValue(["Email": email, "Location": ""]) self.performSegue(withIdentifier: "todorm", sender: self) } }
The database stuff works, the only thing that isn't appearing is the alert. Any ideas? Thanks!!