FireBase 登录过程后导航到主屏幕(内容视图)。 (SwiftUI)
Posted
技术标签:
【中文标题】FireBase 登录过程后导航到主屏幕(内容视图)。 (SwiftUI)【英文标题】:Navigate to Home Screen (Content View) after FireBase log in process. (SwiftUI) 【发布时间】:2021-01-09 18:15:55 【问题描述】:我尝试在 FireBase 登录后导航到主屏幕,但此代码在登录视图中显示主屏幕视图。登录成功时,我输入了 isReadyToNavigateToHomePage.toggle() 。如果它是真的,我会使用它导航到主屏幕。
Button(action:
let error = validateFields()
if error != nil
errM = error!
showErrorAleart.toggle()
showError(error!)
print(error!)
else
Auth.auth().signIn(withEmail: email, password: password) (result, error) in
if error != nil
errr = error!.localizedDescription
print(error!.localizedDescription)
else
self.presentationMode.wrappedValue.dismiss()
print("successful log in")
isReadyToNavigateToHomePage.toggle()
)
HStack
Spacer()
Text("Sign In")
.padding(.horizontal).padding(.vertical,5).padding(.trailing,20)
.background(Color.green)
.foregroundColor(.white)
.cornerRadius(10)
.padding(.top, 30)
.overlay(Image("signInBtn").resizable().frame(width: 12, height: 12).padding(5).background(Color.white).cornerRadius(5).offset(x: 35, y: 15))
Spacer()
if isReadyToNavigateToHomePage == true
ContentView()
.alert(isPresented: $showErrorAleart)
Alert(title: Text("Warning"), message: Text(errM + errr), dismissButton: .default(Text("Ok")))
【问题讨论】:
将所有登录视图相关部分放在else条件中 很抱歉,您能解释一下吗? 是的,当用户已经使用 userDefualts 登录时,我使用您的解决方案显示主屏幕或登录屏幕 【参考方案1】:我创建了一个假的 navigationLink 直到它切换,
NavigationLink(destination: ContentView(showHomeScreen: $showHomeScreen), isActive: $showHomeScreen)
Text("")
.hidden()
else
Auth.auth().signIn(withEmail: email, password: password) (result, error) in
if error != nil
errr = error!.localizedDescription
print(error!.localizedDescription)
else
showHomeScreen.toggle()
print("login successcfully")
当我点击登录按钮时,它会切换并带我进入主屏幕。我找到了 视频网站上的解决方案。
【讨论】:
以上是关于FireBase 登录过程后导航到主屏幕(内容视图)。 (SwiftUI)的主要内容,如果未能解决你的问题,请参考以下文章