首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录屏幕SwiftUI

登录屏幕SwiftUI
EN

Stack Overflow用户
提问于 2022-07-05 16:41:39
回答 2查看 591关注 0票数 3

我有登录的TextFields和密码的SecureField。如果我的登录和密码是正确的,我如何转到另一个视图?

代码语言:javascript
复制
struct LoginBoard: View {
@State private var login = "Tony"
@State private var password = "1234"

var body: some View {
    
    ZStack { 
        VStack {
            HStack {
                Text("Enter Login and Password")
            }

            HStack {
                Image(systemName: "person")
                TextField("Login", text: $login)
            }
            
            HStack {
                SecureField("Password", text: $password)
            }
            
            Button("Login") {
                   
            }
         }
      }
   }
}
EN

回答 2

Stack Overflow用户

发布于 2022-07-05 17:14:09

您应该使用NavigationView (相当于UIKit中的导航控制器),并使用NavigationLink作为导航的segue或触发器。

代码语言:javascript
复制
struct LoginBoard: View {
 
    @State private var login = "Tony"
    @State private var password = "1234"
    @State isLoginSuccess = false

    var body: some View {
    // like navigation controller 
    // that handles the navigation of views
 
        NavigationView { 
        // DestinationView is the view will go 
        // to if credentials is correct
            NavigationLink(destination: DestinationView(), 
                              isActive: $isLoginSuccess) { }
            ZStack { 
                VStack {
                    HStack {
                        Text("Enter Login and Password")
                    }
                    HStack {
                        Image(systemName: "person")
                        TextField("Login", text: $login)
                    }            
                    HStack {
                        SecureField("Password", text: $password)
                    }
                    Button("Login") {
                    // if user and password are correct change          
                    // isLoginSuccess to true and will navigate 
                    // to the next View 
                        isLoginSuccess = true
                    }
                }
            }
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2022-07-05 17:18:10

将堆栈包装在NavigationView{}中,并使用NavigationLink{}指向另一个视图。示例代码如下:

代码语言:javascript
复制
import SwiftUI

struct LoginBoard: View { 

    @State private var login = "Tony"
    @State private var password = "1234"

    var body: some View {
        NavigationView {
            ZStack {
                VStack {
                    HStack {
                        Text("Enter Login and Password")
                    }
                    HStack {
                        Image(systemName: "person")
                        TextField("Login", text: $login)
                    }              
                    HStack {
                        SecureField("Password", text: $password)
                    }
                    NavigationLink {
                        WelcomeView()
                    } label: {
                        Text("Login")
                            .foregroundColor(.blue)
                    }
                    .disabled((login == "Tony" && 
                               password == "1234") ? false : true)
                }
            }
        }
    }
}

struct WelcomeView: View {
    var body: some View {
        Text("welcome!")
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72872898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档