I'm trying to implement a programmable NavigationLink to go to another view, triggered by a simple button. But when that button is next to another button, instead of triggering the NavigationLink, it triggers the action of the button next to it.
What am I mising? If I move the NavigationLink to be after the VStack, then both buttons trigger both the action of the first button and the NavigationLink.
Code Block 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) } } } } }
What am I mising? If I move the NavigationLink to be after the VStack, then both buttons trigger both the action of the first button and the NavigationLink.