注册屏幕不会成功切换到新的视图控制器。

Posted

技术标签:

【中文标题】注册屏幕不会成功切换到新的视图控制器。【英文标题】:Register screen won't successfully segue to a new view controller. 【发布时间】:2018-06-07 20:53:45 【问题描述】:

下午好。我正在尝试在我的应用程序中实现注册功能。当我成功注册时,它将转到主视图控制器,但是,它只会重定向回注册视图控制器。有人可以让我知道我做错了什么吗?

Auth.auth().createUser(withEmail: email, password: password) (User, error) in

        if error != nil 
            print("error")
            return
        else
            let MainView = UINavigationController(rootViewController: mainViewController())
            self.present(MainView, animated: true, completion: nil)
        
        self.defaults.set(false, forKey: "user is logged in")

        let userID = Auth.auth().currentUser!.uid

        let ref = Database.database().reference(fromURL: "https://odd-jobs-llc-f854a.firebaseio.com/")
        let usersReference = ref.child("users").child(userID)
        let values = ["first name": firstname, "last name": lastname, "phone number": phonenumber,
        "email": email]
        usersReference.updateChildValues(values, withCompletionBlock:  (err, ref) in

            if err != nil 
                print("err")
                return
            

            self.dismiss(animated: true, completion: nil)
        )


    

【问题讨论】:

【参考方案1】:

这将呈现 VC

 let MainView = UINavigationController(rootViewController: mainViewController())
 self.present(MainView, animated: true, completion: nil)

还有这个

 self.dismiss(animated: true, completion: nil)

将忽略它,您可能是这样的意思

Auth.auth().createUser(withEmail: email, password: password)  (User, error) in

        if error != nil 
            print("error")
            return
         

        self.defaults.set(false, forKey: "user is logged in")

        let userID = Auth.auth().currentUser!.uid

        let ref = Database.database().reference(fromURL: "https://odd-jobs-llc-f854a.firebaseio.com/")
        let usersReference = ref.child("users").child(userID)
        let values = ["first name": firstname, "last name": lastname, "phone number": phonenumber,
        "email": email]
        usersReference.updateChildValues(values, withCompletionBlock:  (err, ref) in

            if err != nil 
                print("err")
                return
            

             let MainView = UINavigationController(rootViewController: mainViewController())
             self.present(MainView, animated: true, completion: nil)


        )


    

【讨论】:

以上是关于注册屏幕不会成功切换到新的视图控制器。的主要内容,如果未能解决你的问题,请参考以下文章

在不同的 ViewController 中切换到新的 ViewController?

如何在不使用 UINavigationController 的情况下过渡到新的非模型视图控制器?

UIwebview 图片到新的视图控制器

Swift:使用按钮导航到新的 ViewController

在自定义容器控制器中旋转后视图未调整大小

iOS 在处理触摸事件之前执行操作