当按钮靠近时,SwiftUI NavigationLink无法正常工作

当按钮靠近时,SwiftUI NavigationLink无法正常工作,swiftui,navigationlink,xcode12,Swiftui,Navigationlink,Xcode12,我正在尝试实现一个可编程的NavigationLink,通过一个简单的按钮可以转到另一个视图。但是,当该按钮位于另一个按钮旁边时,它不会触发NavigationLink,而是触发它旁边的按钮的操作 struct NavLinkView: View { @State var showPasswordStr = true @State var showCheckView = false @State var password = "Abc" var

我正在尝试实现一个可编程的NavigationLink,通过一个简单的按钮可以转到另一个视图。但是,当该按钮位于另一个按钮旁边时,它不会触发NavigationLink,而是触发它旁边的按钮的操作

struct NavLinkView: View {
    @State var showPasswordStr = true
    @State var showCheckView = false
    @State var password = "Abc"
    var body: some View {
        Form {
            VStack {
                NavigationLink(destination: CheckView(), isActive: $showCheckView ) {
                    EmptyView()
                }
                Text("Password")
                    .font(.system(size: 12, weight: .light, design: .default))
                    .foregroundColor(.gray)
                HStack {
                    
                    if showPasswordStr {
                        TextField("", text: $password)
                            .textFieldStyle(RoundedBorderTextFieldStyle())
                    } else {
                        SecureField("", text: $password)
                            .textFieldStyle(RoundedBorderTextFieldStyle())
                    }
                    Button(action: {
                        showPasswordStr.toggle()
                    } ) {
                        Image(systemName: showPasswordStr ? "eye.slash" : "eye" )
                    }
                    .padding(.leading)

                    Button(action: { showCheckView.toggle() } ) {
                        Image(systemName: "checkmark.circle" )
                    }
                    .padding(.leading)
                }
            }
        }
    }
}

我错了什么?如果我将NavigationLink移动到VStack之后,则两个按钮都会触发第一个按钮和NavigationLink的动作。

由于您的按钮处于
形式
中,您需要将其样式更改为
普通按钮样式

Button(action: {
    self.showPasswordStr.toggle()
}) {
    Image(systemName: showPasswordStr ? "eye.slash" : "eye")
}
.buttonStyle(PlainButtonStyle()) // <- add style

Button(action: { self.showCheckView.toggle() }) {
    Image(systemName: "checkmark.circle")
}
.buttonStyle(PlainButtonStyle()) // <- add style
按钮(操作:{
self.showPasswordStr.toggle()
}) {
图像(系统名称:showPasswordStr?“eye.slash”:“eye”)
}
.buttonStyle(PlainButtonStyle())//