如何使 NavigationLink 中的数据可滚动 swiftui

How to make data in NavigationLink scrollable swiftui

我是 swift 的初学者,正在尝试创建具有两个屏幕的应用程序。带有数据列表的屏幕 A。当用户 select 从列表中选择项目时,项目详细信息将显示在屏幕 B 中。仅此而已。

我使用了下面的代码。一切正常。当列表中的 i select 项时,屏幕 B 显示数据。 但问题是屏幕 B 中的数据不可滚动。

我在这里使用 NavigationLink 来显示数据。尝试添加 ScrollView 但不起作用。

请告诉我需要进行哪些更改才能使 NavigationLink 中的内容可滚动。

import SwiftUI
struct ContentView: View {
var body: some View {

    NavigationView() {
        VStack{
            List(modelDisease) { myList in

                ScrollView(.vertical,showsIndicators: true){
                    VStack{
                NavigationLink(
            destination: Text( myList.data) .padding()) {
        HStack {
            Text("\(myList.idValue)").frame(width: 50, height: 10, alignment: .leading)
            VStack {
                Text(myList.name)
            }
        }.font(.title)
                }
                }
                }
    }
    }.navigationBarTitle("Ayurvedic Remedies")
    }
}

}

正如评论中所建议的,您可能希望您的目的地是它自己的观点。现在,您有一个 List 和一个 ScrollView,这是多余的,因此您可能希望 ScrollView 作为目标的一部分。它可能看起来像这样(基于您的原始代码,缺少 modelDisease 类型和声明):

struct ContentView: View {
    //modelDisease must be declared here
    
    var body: some View {
        NavigationView {
            List(modelDisease) { myList in
                NavigationLink(
                    destination: DestinationView(data: myList.data)) {
                    HStack {
                        Text("\(myList.idValue)").frame(width: 50, height: 10, alignment: .leading)
                        VStack {
                            Text(myList.name)
                        }
                    }.font(.title)
                }
            }
        }.navigationBarTitle("Ayurvedic Remedies")
    }
}


struct DestinationView : View {
    var data : String
    
    var body: some View {
        ScrollView {
            Text(data)
        }.padding()
    }
}