gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:07:50 24 4
gpt4 key购买 nike

由于 NavigationButton 不再可用,我如何检查 NavigationLink 中的条件以便导航到另一个 View ?


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)
}

编辑:-

此外,如果 userNamepassword 的长度超过 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 本身就是一个按钮,当按下它时,它会导航到 destinationViewisActive 参数是一种强制执行此操作的方法(无需用户单击 NavigationLink)。截至目前,我不确定如何将逻辑嵌入 NavigationLinks。

希望这有帮助:)

编辑:

您可以做的另一件事是:

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

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

关于navigation - 如何在 SwiftUI 中使用带有条件检查的按钮进行导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58525213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com