我正在尝试从登录 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("Password:")
                                      .font(.headline)

                      SecureField("Password", 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"))
        }

最佳答案

要解决您的问题,您需要使用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)
}

意思是,当选择和NavigationLink标签值匹配则导航会发生。

我希望这能帮到您。

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

10-09 02:33