如何在 SwiftUI 中使用带条件检查的按钮进行导航

2024-05-16

Since 导航按钮不再可用,我如何检查条件导航链接为了导航到另一个视图?

NavigationLink(destination: Dashboard(userName: self.userId,
                                      password: self.password), isActive: $showDashboard) {
    Button(action: {
        if self.userId.isEmpty || self.password.isEmpty {
            self.isAlert = true
        } else {
            self.showDashboard = true
        }
                       
    }) {
        Text("Submit")
            .foregroundColor(.white)
            .font(.system(size: 22))
                       
        Dashboard()
    }
    .frame(minWidth: 150, idealWidth: 300, maxWidth: 450,
           minHeight: 30, idealHeight: 40, maxHeight: 50, alignment: .center)
    .background(Color(red: 81/255, green: 221/255, blue: 182/255))
                       
    .padding([.leading, .trailing], 20)
}

Edit:-

另外我想显示警报,如果长度userName and password大于 16,如果长度大于 10,则发出不同的警报;如果长度为 0,则发出空消息警报。


你可以这样做:

    NavigationView {
        VStack {
            NavigationLink(destination:  Dashboard(userName: self.userId, password: self.password), isActive: $showDashboard) {
                Text("")
            }
            Button(action: {
                 if self.userId.isEmpty || self.password.isEmpty {
                      self.isAlert = true
                  } else {
                      self.showDashboard = true
                  }
            }) {
                Text("Submit")
                    .foregroundColor(.green)
                    .font(.system(size: 22))

            }
        }
    }

要记住的一件事是,NavigationLink 本身就是一个按钮,按下时它会导航到destinationView, the isActive参数是强制发生这种情况的一种方法(无需用户单击导航链接)。截至目前,我不确定如何将逻辑嵌入到 NavigationLinks 中。

希望这可以帮助 :)

EDIT:

您可以做的另一件事如下:

NavigationLink(destination:Dashboard(userName: self.userId, password: self.password)) {
                    Text("Submit")
                }.disabled(self.userId.isEmpty || self.password.isEmpty )

这将禁用 NavigationLink,直到两个输入字段都不为空。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 SwiftUI 中使用带条件检查的按钮进行导航 的相关文章

随机推荐