NavigationLink 在工作表视图中不起作用

问题描述 投票:0回答:1

我在工作表视图中创建了一些按钮

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

这是我对工作表的看法 enter image description here

但主要问题是当我单击按钮时,它不会导航到下一个目标页面。它在预览中有效,但在设备上无效。

我在这个页面中没有 navigationStack 是因为我在我的根视图中有它。

我们是否允许在工作表视图中包含 navigationLink?

swift swiftui navigation
1个回答
0
投票

AFAIK,床单需要自己的

NavigationStack
。所以 在你的
.sheet(...)
中,尝试使用:

 .sheet(isPresented: $showingSheet) {
     NavigationStack {  // <--- here
         PlusMenu()
     }
 }
© www.soinside.com 2019 - 2024. All rights reserved.