我有一个负责对用户进行身份验证的 View Controller 。当用户登录后,我想回到父 View Controller 。正在关注this指南,我已经创建了一个从 auth View Controller 到它的导出的 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 版测试版 (8W109m)。
这几天我一直在寻找解决方案。
免责声明:我是 Xcode 的新手,但我已经编程近 10 年了。不过,我没有接受过正规培训。
最佳答案
unwind segue action 必须放置在您要返回到的 View Controller 上,而不是您要离开的 View Controller 上。
如果你想传回数据,那么你可以使用委托(delegate)
关于ios - 无法执行 segue 退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042966/