导航在成功登录后无法激活

问题描述 投票:0回答:1

我正在使用Firebase对用户进行身份验证,并希望在成功登录后显示主屏幕。但是,当按下“登录”按钮时,不会触发我转到LandingPageView的导航链接。我希望新视图以模态显示,而不是在导航堆栈中显示,这样您就无法通过导航按钮登录时导航回到主屏幕,而必须主动注销。这是我的代码

import SwiftUI
import FirebaseAuth

struct ContentView: View {

@State var email: String = ""
@State var passsword: String = ""
@State var goToHome: Bool = false

var body: some View {
    NavigationView {
    ZStack{
        Color(.systemGreen).edgesIgnoringSafeArea(.all)
        VStack {
            Text("Chat App").font(Font.custom("Pacifico-regular", size: 40))
            Spacer()
            VStack {
                Text("Email: ").font(.body)
                TextField("Enter your email", text: $email).textFieldStyle(RoundedBorderTextFieldStyle())
                    .padding(.horizontal)
            }
            VStack {
                Text("Password: ")
                TextField("Enter your password", text: $passsword)
                    .textFieldStyle(RoundedBorderTextFieldStyle())
                    .padding(.horizontal)
            }
            Button(action: {
                Auth.auth().signIn(withEmail: self.email, password: self.passsword) { (result, error) in
                        if error != nil {
                            print("ERROR \(error!)")
                        } else {
                            print("SIGNED IN USER")
                            self.goToHome = true
                            NavigationLink(destination:
                            LandingPageView(), isActive: self.$goToHome) {
                                Text("")
                            }.hidden()
                        }
                    }
            }) {
                Text("Login")
            }
            NavigationLink(destination: SignUpView()) {
                Text("Sign Up")
            }


        }
    }
}
}
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
    ContentView()
}

}

ios swift swiftui
1个回答
0
投票

更像这样:

var body: some View {
ZStack {
    if Auth.auth().currentUser = nil
       // Your LogIn-View
       } else {
       LandingPageView()
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.