我在工作表视图中创建了一些按钮
struct PlusMenu: View {
@Environment(\.dismiss) var dismiss
@State var scaleChange = true
var buttons = ["cup.and.saucer", "takeoutbag.and.cup.and.straw", "carrot", "fork.knife","equal.square"]
var body: some View {
VStack{
HStack{
Spacer()
Button(action: {
dismiss()
}, label: {
Text("Cancel")
.font(customFont(20, "-Black"))
})
.foregroundColor(.black)
.padding(.top)
}
LabelledDivider(label: "Actions")
Spacer()
buttonList(start:0, end: 3)
buttonList(start:3, end:buttons.count)
Spacer()
}
.padding(.horizontal)
}
func buttonList(start:Int, end:Int) -> some View{
HStack{
ForEach(buttons[start..<end], id:\.self){ buttonName in
Spacer()
NavigationLink {
Text("Enter")
} label: {
Image(systemName: buttonName)
.padding()
.background(Circle().stroke(.semiGray, lineWidth: 3).shadow(radius: 3))
.foregroundColor(.black)
}
Spacer()
}
}
.padding(.vertical)
}
}
但主要问题是当我单击按钮时,它不会导航到下一个目标页面。它在预览中有效,但在设备上无效。
我在这个页面中没有 navigationStack 是因为我在我的根视图中有它。
我们是否允许在工作表视图中包含 navigationLink?
AFAIK,床单需要自己的
NavigationStack
。所以
在你的 .sheet(...)
中,尝试使用:
.sheet(isPresented: $showingSheet) {
NavigationStack { // <--- here
PlusMenu()
}
}