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



我是swift的初学者,试图创建一个有两个屏幕的应用程序。屏幕A显示数据列表。当用户从列表中选择项目时,项目详细信息将显示在屏幕B中。这就是全部。

我使用了以下代码。一切都很好。当我选择列表中的项目时,屏幕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()
}
}

最新更新