【发布时间】:2017-02-05 02:07:00
【问题描述】:
我有一个视图控制器,它负责对用户进行身份验证。当使用登录时,我想回到父视图控制器。按照this 指南,我创建了一个从auth 视图控制器到它的出口的segue。当我尝试在代码中调用它时,我什么也没有发生。
这是我的代码:
import UIKit
import Firebase
import FirebaseAuth
import GoogleSignIn
class AuthVC: UIViewController, GIDSignInUIDelegate {
@IBAction func unwindAuth(sender: UIStoryboardSegue) {
print("'unwindAuth' called")
}
override func viewDidLoad() {
super.viewDidLoad()
GIDSignIn.sharedInstance().uiDelegate = self
FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in
if FIRAuth.auth()?.currentUser != nil {
print(self.shouldPerformSegue(withIdentifier: "unwindSegue", sender: nil))
self.performSegue(withIdentifier: "unwindAuthSegue", sender: nil)
}
}
}
}
单击登录按钮后,我在控制台中从self.shouldPerformSegue 获得true,但没有其他任何内容(没有错误,也没有任何反应)。
我正在使用 Xcode 版本 8.3 beta (8W109m)。
这几天我一直在寻找解决方案。
免责声明:我是 Xcode 的新手,但我已经编程了将近 10 年。不过,我没有接受过正规培训。
【问题讨论】:
-
您没有仔细阅读它:“..您在视图控制器中指定了一个展开操作的名称,您希望 segue 展开到”。您已将其放入要从中展开的视图控制器中。
-
感谢您的回答。有没有办法反过来呢?我可以从第一个控制器监听登录,但要知道它来自身份验证视图控制器,我必须设置某种状态变量。这似乎不是最佳实践。另外,为什么我没有收到错误而不是什么都没有?
-
听起来您想将数据从第二个视图控制器传回给第一个?如果您环顾四周,有很多关于如何做到这一点的过去问题。
-
好的,谢谢。创建一个答案,我会选择它。