我想给NavigationLink设置一个条件。
我有两个变量,NavigationLink如下。
@State var score = 0
@State var target = 10
NavigationLink(destination: level2()) {
Text("Next Level")
}
如果分数大于目标,有没有办法让用户进入下一个级别?
谢谢。
好吧,你的问题可以有不同的解释。。。
-
如果你想在分数比目标大之前不表现出下一步的能力,那么这就是
如果得分>只有当为true时,目标{//链接才会显示给用户NavigationLink(目的地:level2((({
文本("下一级"(}} -
如果你想显示链接,但在条件成立之前不允许导航,那么它就是
NavigationLink(目的地:level2((({
文本("下一级"(}.禁用(分数<=目标( -
如果您想在条件为true时自动导航链接,那么可能的变体是(但请注意,在这种情况下,您需要手动操作前后导航,或禁止向后导航等。(
NavigationLink(destination:level2((,isActive:.constant(score>target(({
文本("下一级"(}
- 备用是使用显式状态进行激活
如果你想保持颜色并在点击时显示一些警报,你可以使用以下破解:
NavigationLink(destination: EmptyView()) {
HStack {
Circle()
}
}
.contentShape(Rectangle())
.onTapGesture {
print("ALERT MAYBE")
}