简体   繁体   English

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

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

Here's the snippet of code from LoginView :这是来自LoginView的代码片段:

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

and there's a piece of code of MainTabView (aka Home Tab):并且有一段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")
            }

I googled around and saw NavigationLink or something but I don't want to wrap up this transition to a NavController at all.我在谷歌上搜索并看到了NavigationLink或其他东西,但我根本不想把这个过渡到 NavController 结束。

Here:这里:

    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")
                    }
                
            }
        }
        
    }
}

Here Updated for you:这里为您更新:

  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.

相关问题 如何在视图控制器之间进行转换并从每个控制器返回到主视图 con.? - How do I make the transition between view controllers and return from each to the main view con.? 如何在视图控制器之间进行淡入淡出/无过渡 - How do I do a Fade/No transition between view controllers 我怎么能简单地将视图转换为 SwiftUI 视图? - How could I simply have a View transition to SwiftUI View? 如何在 SwiftUI 中使用cornerRadius 为视图创建前导边框? - How do I create a leading border for a view with cornerRadius in SwiftUI? 如何将数据从 viewController 传递到 swiftUI 视图? - How do I pass data from viewController to swiftUI view? 如何将 go 从 SwiftUI 视图转换为 UIKit TabViewController? - How do I go from a SwiftUI view to a UIKit TabViewController? 如何在 SwiftUI 中创建此视图? - How can I create this view in SwiftUI? 如何在 SwiftUI 中从顶部创建可拖动视图? - How to create dragable view from top in SwiftUI? 如何在视图转换时停止计时器? - How do I stop timer on view transition? 我在 SwiftUI 中创建了一个自定义选项卡栏,但是当我使用 select 选项卡时,它会完全重新加载视图。 我该如何防止这种情况 - I created a custom tab bar in SwiftUI, but when I select a tab, it completely reloads the view. How do I prevent this
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM