NavigationLink 查看参数 SwiftUI

Beg*_*bie 6 swiftui swiftui-navigationlink

当我在视图中调用 NavigationImageView 时,我想在每次调用中发送不同的视图,这样我就可以导航不同的视图。但问题是如何在 NavigationLink 中发送视图参数。我尝试了 View 和 UIView 但它给了我错误。

struct NavigationImageView: View {
    
    var item : Store
    var destinationView: View
    
    var body: some View {
        
        NavigationLink(destination:destinationView ) {
            
            Image(uiImage: (item.banner?.url)!.load())
                .resizable()
                .aspectRatio(CGFloat((item.banner?.ratio)!), contentMode: .fit)
                .cornerRadius(12)
                .shadow(radius: 4)
                .frame(width: CGFloat(UIScreen.main.bounds.width * 0.9), height: CGFloat((UIScreen.main.bounds.width / CGFloat((item.banner?.ratio) ?? 1))))
            
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Asp*_*eri 6

您需要在这里使用泛型,因为目标视图的类型事先未知:

struct NavigationImageView<DestinationType: View>: View {
    
    var item : Store
    var destinationView: DestinationType

    // ... other code
}
Run Code Online (Sandbox Code Playgroud)