在 SwiftUI 中使用 NavigationStack 呈现工作表视图

bjo*_*lau 7 swiftui swiftui-sheet swiftui-navigationstack

我试图弄清楚是否有办法在 iOS 16 中使用新的 NavigationStack 打开工作表,但似乎找不到方法。

因此,可以使用以下命令打开工作表:

.sheet(isPresented: $isShowing)
Run Code Online (Sandbox Code Playgroud)

但是使用新的 NavigationStack,您将拥有一个呈现类型的数组:

.navigationDestination(for: SomeType.self, destination: { route in
Run Code Online (Sandbox Code Playgroud)

如果我能以某种方式定义当呈现特定目的地时它将作为工作表打开而不是使用模式导航,那就太棒了。

有谁知道这是否可以实现?:)

And*_*sen 0

这对我有用。我可以从任何视图将对象推送到我的路线,并使用模态表加载它。

class Route: ObservableObject {
    
    @Published var presentedObject: [CarObject] = []
    @Published var isPresented: Bool = false

}

struct NavigationWithSheet: View {
    var body: some View {
        
        @EnvironmentObject var route: Route
        
        NavigationStack {
            Button("Open sheet") {
                route.isPresented = true
                route.presentedObject.append(newCar)
            }
            .sheet(isPresented: $route.isPresented) {
                let carObject = route.presentedObject.first
                ViewWithObject(car: carObject!)
            }
        }
        
    }
}

Run Code Online (Sandbox Code Playgroud)