ios - Swift 3 回到以前的 View Controller

标签 ios swift xcode parse-platform

我正在创建的应用程序中有一个登录功能,它似乎工作正常。我使用解析。这是登录功能。

 @IBAction func login(_ sender: AnyObject) {

    if self.userName.text == "" || self.password.text == "" {
        self.createAlert(title: "Login Error", message: "Please make sure all fields are filled in")
    }else{
        PFUser.logInWithUsername(inBackground: userName.text!, password: password.text!) { (user, error) in

        self.activityIndicator.stopAnimating()
        UIApplication.shared.endIgnoringInteractionEvents()



        if error != nil {
            var displayErrorMessage = "Please try again later."

            if let errorMessage = (error! as NSError).userInfo["error"] as? String {

                displayErrorMessage = errorMessage
            }

            self.createAlert(title: "Signup Error", message: displayErrorMessage)
        }else{
            print("logged in")

            self.performSegue(withIdentifier: "successLogin", sender: self)

        }

        }

    }

}

所以第一个检查是检查用户名或密码文本字段是否为空,如果是,它会创建一个警报。当我第一次启动该应用程序时,它就像一个魅力。但是,当我使用用户登录并注销时,我被重定向到用户名和密码为空的登录屏幕。然后我单击登录并收到正确的警报,说“请确保所有字段都已填写”,当我关闭它时,它会自动执行 segue,就好像登录成功一样。谁能帮帮我?

@IBAction func logOut(_ sender: AnyObject) {

    PFUser.logOut()
    performSegue(withIdentifier: "logOutSeg", sender: self)

}

此外,这是我的创建警报功能:

func createAlert(title: String, message: String) {

    let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.alert)

    alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action) in
        self.dismiss(animated: true, completion: nil)
    }))

    self.present(alert, animated: true, completion: nil)

}

如果我在第一个 if 语句之后删除 createAlert 方法,它会正确执行操作,所以我假设它在其中。

最佳答案

当您第一次退出第二个屏幕时,如果通过执行 segue 进入第一个登录屏幕,则可能会发生这种情况。这就是为什么你得到空的用户名和密码。当您通过调用 self.dismiss(animated: true, completion: nil) 在登录屏幕中关闭 alertviewcontroller 时,它会关闭当前 View Controller 。关闭登录屏幕(第二个屏幕),而不是在注销后执行 segue。

关于ios - Swift 3 回到以前的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841650/

相关文章:

ios - UISplitViewController 始终在 iPad 纵向模式 iOS 9 中显示主视图

ios - Facebook Messenger SDK 分享文本和 url 给 facebook 好友

ios - Today Widget 扩展的配置文件

Swift 方法文档 - 不显示在自动完成中

iphone - Json 或 CSV 到具有大量数据的 Web 服务

ios - 删除用户后 session 无效 Parse Server Swift

ios - 在 iOS4 中包含 HelveticaNeue-Medium

arrays - 我可以使用 UnsafePointer.withMemoryRebound 将 [UInt8] 重新映射到 [UInt16] 吗?

swift - SKEmitterNode 在场景重启时导致崩溃

ios - 如何在 UITextView 中显示可点击的链接