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(使用前将#替换为@)