OStack程序员社区-中国程序员成长平台

标题: ios - 在 SwiftUI 中单击按钮时的 NavigationView 和 NavigationLink? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 05:39
标题: ios - 在 SwiftUI 中单击按钮时的 NavigationView 和 NavigationLink?

我正在尝试从登录 View 推送到详细 View ,但无法成功。即使导航栏未显示在登录 View 中。如何在 SwiftUI 中按下按钮?如何在按钮点击时使用 NavigationLink?

var body: some View {
    
    NavigationView {
        VStack(alignment: .leading) {
            Text("Let's get you signed in.")
                .bold()
                .font(.system(size: 40))
                .multilineTextAlignment(.leading)
                .frame(width: 300, height: 100, alignment: .topLeading)
                .padding(Edge.Set.bottom, 50)
            
            Text("Email address:")
                .font(.headline)
            TextField("Email", text: $email)
                .frame(height:44)
                .accentColor(Color.white)
                .background(Color(UIColor.darkGray))
                .cornerRadius(4.0)
            
            Text("assword:")
                .font(.headline)
            
            SecureField("assword", text: $password)
                .frame(height:44)
                .accentColor(Color.white)
                .background(Color(UIColor.darkGray))
                .cornerRadius(4.0)
            
            Button(action: {
                print("login tapped")
            }) {
                HStack {
                    Spacer()
                    Text("Login").foregroundColor(Color.white).bold()
                    Spacer()
                }
            }
            .accentColor(Color.black)
            .padding()
            .background(Color(UIColor.darkGray))
            .cornerRadius(4.0)
            .padding(Edge.Set.vertical, 20)
        }
        .padding(.horizontal,30)
    }
    .navigationBarTitle(Text("Login"))
}



Best Answer-推荐答案


要解决您的问题,您需要使用 NavigationLink 绑定(bind)和管理标签,因此在您的 View 中创建一个状态如下,只需添加上面的正文。

@State var selection: Int? = nil

然后更新您的按钮代码如下添加 NavigationLink

NavigationLink(destination: Text("Test"), tag: 1, selection: $selection) {
    Button(action: {
        print("login tapped")
        self.selection = 1
    }) {
        HStack {
            Spacer()
            Text("Login").foregroundColor(Color.white).bold()
            Spacer()
        }
    }
    .accentColor(Color.black)
    .padding()
    .background(Color(UIColor.darkGray))
    .cornerRadius(4.0)
    .padding(Edge.Set.vertical, 20)
}

Meaning is, when selection and NavigationLink tag value will match then navigation will be occurs.

希望对你有帮助。

关于ios - 在 SwiftUI 中单击按钮时的 NavigationView 和 NavigationLink?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57799548/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4