繁体   English   中英

如何在 SwiftUI 中创建从登录视图到选项卡视图之间的转换?

[英]How do I create a transition between from Login View to Tab View in SwiftUI?

这是来自LoginView的代码片段:

Button(action: {
    if loginAndPasswordAreOK() {
        // Perform Segue to TabView
    } else {
        self.isValidLoginAndPassword = false
        self.email = ""
        self.password = ""
    }
}, label: {

并且有一段MainTabView代码(又名 Home Tab):

struct MainTabView: View {
var body: some View {
    TabView {
        Text("Home Tab")
            .font(.system(size: 30, weight: .bold, design: .rounded))
            .tabItem {
                Image(systemName: "house.fill")
                Text("Home")
            }

我在谷歌上搜索并看到了NavigationLink或其他东西,但我根本不想把这个过渡到 NavController 结束。

这里:

    import SwiftUI

struct ContentView: View {
    
    @State var isPassOk: Bool = false
    var userPass: String = "1234"
    @State var userGivenPass: String = ""
    
    var body: some View {
        
        
        
        if isPassOk == false
        {
            HStack
            {
                
                
                
                TextField("Enter your Pass Here!", text: $userGivenPass)
                    .textFieldStyle(RoundedBorderTextFieldStyle())
                
                
                Button("Log in") {
                    
                    // do your logig Here!
                    if userGivenPass == userPass
                    {
                        withAnimation(.easeInOut)
                        {
                            isPassOk = true
                        }
                        
                    }
                    else
                    {
                        isPassOk = false
                    }
                    
                    
                }
                
            }
            .font(Font.title)
            .padding()
        }
        else if isPassOk == true
        {
            TabView {
                Text("Home Tab")
                    .font(.system(size: 30, weight: .bold, design: .rounded))
                    .tabItem {
                        Image(systemName: "house.fill")
                        Text("Home")
                    }
                
            }
        }
        
    }
}

这里为您更新:

  import SwiftUI

    struct ContentView: View {
        
        @State var isPassOk: Bool = false
    
    
    var body: some View {
        
        
        
        if isPassOk == false
        {
            LogInView(isPassOk: $isPassOk)
        }
        else if isPassOk == true
        {
            MainTabView()
        }
        
        
        
        
    }
}




struct LogInView: View {
    
    
    @Binding var isPassOk: Bool
    var userPass: String = "1234"
    @State var userGivenPass: String = ""
    
    var body: some View {
  
        HStack
        {
  
            
            TextField("Enter your Pass Here!", text: $userGivenPass)
                .textFieldStyle(RoundedBorderTextFieldStyle())
            
            
            Button("Log in") {
                
                // do your logig Here!
                if userGivenPass == userPass
                {
                    withAnimation(.easeInOut)
                    {
                        isPassOk = true
                    }
                    
                }
                else
                {
                    isPassOk = false
                }
   
            }
            
        }
        .font(Font.title)
        .padding()
        
    }
 
    
}







struct MainTabView: View {
    
    var body: some View {
        
        
        TabView {
            Text("Home Tab")
                .font(.system(size: 30, weight: .bold, design: .rounded))
                .tabItem {
                    Image(systemName: "house.fill")
                    Text("Home")
                }
            
        }
        
    }
    
    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM