performSegue 在检查用户是否已通过身份验证时无法使用 FireBase Swift 3/4
performSegue not working FireBase while checking the user is authenticated Swift 3/4
我刚刚完成了 letsbuildthatapp 关于 firebase 与社交登录混合的教程视频。
如果用户已经通过身份验证,我目前正在尝试执行 segue。
我在 if 和 performSegue 之后打印了一些东西,因为我正在使用它进行测试。
有我的代码
func verifDejaConnecter() {
if Auth.auth().currentUser?.uid != nil {
performSegue(withIdentifier: "segueAccueilToPres", sender: nil)
print("test")
} else {
return
}
}
mySegue 已创建并可以运行,但此处没有附加任何内容。
在控制台中,我可以看到 if 中打印的测试结果......但没有任何移动
试试这个:
func verifDejaConnecter() {
if Auth.auth().currentUser?.uid != nil {
DispatchQueue.main.async {
self.performSegue(withIdentifier: "segueAccueilToPres", sender: self)
print("test")
}
} else {
return
}
}
如果您想在用户登录后打开应用程序时显示不同的控制器,我建议您实例化一个不同的控制器...这是我为此使用的代码。 (在 AppDelegate 中)
if ((Auth.auth().currentUser) != nil)
{
initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "tabBarController") as! UITabBarController // or UIViewController depending on your setup.
}
else
{
initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "LoginController") as!
LoginController // or your login controller.
}
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
其中 "LoginController" 和 "tabBarController" 您需要将这些输入到 StoryBoard Identity inspector Identity、StoryBoard Identity 下。
我刚刚完成了 letsbuildthatapp 关于 firebase 与社交登录混合的教程视频。
如果用户已经通过身份验证,我目前正在尝试执行 segue。
我在 if 和 performSegue 之后打印了一些东西,因为我正在使用它进行测试。
有我的代码
func verifDejaConnecter() {
if Auth.auth().currentUser?.uid != nil {
performSegue(withIdentifier: "segueAccueilToPres", sender: nil)
print("test")
} else {
return
}
}
mySegue 已创建并可以运行,但此处没有附加任何内容。
在控制台中,我可以看到 if 中打印的测试结果......但没有任何移动
试试这个:
func verifDejaConnecter() {
if Auth.auth().currentUser?.uid != nil {
DispatchQueue.main.async {
self.performSegue(withIdentifier: "segueAccueilToPres", sender: self)
print("test")
}
} else {
return
}
}
如果您想在用户登录后打开应用程序时显示不同的控制器,我建议您实例化一个不同的控制器...这是我为此使用的代码。 (在 AppDelegate 中)
if ((Auth.auth().currentUser) != nil)
{
initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "tabBarController") as! UITabBarController // or UIViewController depending on your setup.
}
else
{
initialViewController = mainStoryboard.instantiateViewController(withIdentifier: "LoginController") as!
LoginController // or your login controller.
}
self.window?.rootViewController = initialViewController
self.window?.makeKeyAndVisible()
其中 "LoginController" 和 "tabBarController" 您需要将这些输入到 StoryBoard Identity inspector Identity、StoryBoard Identity 下。