プログラム可能な 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 の両方のアクションをトリガーします。