Navigation 如何在简单的SwiftUI应用程序中有效地使用导航链接?

Navigation 如何在简单的SwiftUI应用程序中有效地使用导航链接?,navigation,swiftui,Navigation,Swiftui,我真的,真的很不擅长为SwiftUI编写代码!我一直在尝试创建一个用于高尔夫的应用程序,我首先想要的是显示一个逐孔列表,并带有指向显示该孔的swift文件或图像的链接。因此,单击列表中的孔1会将我带到一个新屏幕,显示孔1 plus图像的详细信息 以下是迄今为止的代码: import SwiftUI struct NavigationLists: View { struct DetailView: View { let holes: String var

我真的,真的很不擅长为SwiftUI编写代码!我一直在尝试创建一个用于高尔夫的应用程序,我首先想要的是显示一个逐孔列表,并带有指向显示该孔的swift文件或图像的链接。因此,单击列表中的孔1会将我带到一个新屏幕,显示孔1 plus图像的详细信息

以下是迄今为止的代码:

import SwiftUI

struct NavigationLists: View {
    struct DetailView: View {
        let holes: String
        var body: some View {
            Text(holes)
        }
    }

    let holes = ["Hole 1", "Hole 2", "Hole 3", "Hole 4", "Hole 5", "Hole 6", "Hole 7", "Hole 8",     "Hole 9", "Hole 10", "Hole 11", "Hole 12", "Hole 13", "Hole 14", "Hole 15", "Hole 16", "Hole 17", "Hole 18"]

    var body: some View {
        NavigationView {
            List(holes, id: \.self) { holes in
                NavigationLink(
                destination: DetailView(holes: holes)) {
                    Text(holes)
                }
            }
            .navigationBarTitle("Hole by Hole")
        }
    }
}

struct NavigationLists_Previews: PreviewProvider {
    static var previews: some View {
        NavigationLists()
    }
}

我建议您浏览一下上面的建筑列表和导航教程

您将创建可以显示任何地标信息的视图,并动态生成一个滚动列表,用户可以点击该列表查看地标的详细视图。要微调UI,您将使用Xcode的画布以不同的设备大小呈现多个预览

这应该会让你开始:

import SwiftUI

struct Hole: Hashable {
    var title: String
    var description: String
    var imageName: String
}

struct DetailView: View {
    @State var hole: Hole

    var body: some View {
        VStack {
            Image(systemName: self.hole.imageName)
            Text(self.hole.title)
            Text(self.hole.description)
        }
    }
}

struct ContentView: View {
    let holes: [Hole] = [
        Hole(title: "Hole 1", description: "Hole 1 Description", imageName: "square.and.arrow.up"),
        Hole(title: "Hole 2", description: "Hole 2 Description", imageName: "square.and.arrow.up.fill"),
        Hole(title: "Hole 3", description: "Hole 3 Description", imageName: "pencil.circle"),
        Hole(title: "Hole 4", description: "Hole 4 Description", imageName: "pencil.circle.fill")
    ]

    var body: some View {
        NavigationView {
            List(self.holes, id: \.self) { hole in
                NavigationLink(destination: DetailView(hole: hole)) {
                    Text(hole.title)
                }
            }
            .navigationBarTitle("Hole by Hole")
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

我建议您浏览一下上面的建筑列表和导航教程

您将创建可以显示任何地标信息的视图,并动态生成一个滚动列表,用户可以点击该列表查看地标的详细视图。要微调UI,您将使用Xcode的画布以不同的设备大小呈现多个预览

这应该会让你开始:

import SwiftUI

struct Hole: Hashable {
    var title: String
    var description: String
    var imageName: String
}

struct DetailView: View {
    @State var hole: Hole

    var body: some View {
        VStack {
            Image(systemName: self.hole.imageName)
            Text(self.hole.title)
            Text(self.hole.description)
        }
    }
}

struct ContentView: View {
    let holes: [Hole] = [
        Hole(title: "Hole 1", description: "Hole 1 Description", imageName: "square.and.arrow.up"),
        Hole(title: "Hole 2", description: "Hole 2 Description", imageName: "square.and.arrow.up.fill"),
        Hole(title: "Hole 3", description: "Hole 3 Description", imageName: "pencil.circle"),
        Hole(title: "Hole 4", description: "Hole 4 Description", imageName: "pencil.circle.fill")
    ]

    var body: some View {
        NavigationView {
            List(self.holes, id: \.self) { hole in
                NavigationLink(destination: DetailView(hole: hole)) {
                    Text(hole.title)
                }
            }
            .navigationBarTitle("Hole by Hole")
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

你的具体问题是什么?(回复:)。包括你试图实现的具体行为,以及哪里出了问题。你的具体问题是什么?(回复:)。包括你试图实现的具体行为,以及哪里出了问题。谢谢你,Fuzz——这是一个非常好的输入。我删除了系统名,我的洞图像通过了。我非常感谢你在这里的指导。谢谢你,Fuzz,你的意见非常好。我删除了系统名,我的洞图像通过了。我非常感谢你在这里的指导。