Swiftui 从一个列表到第二个列表
从第一个列表视图中,用户选择一行。然后出现第二个列表视图,用户再次选择一行,然后我们进入详细视图(参见屏幕转储)。有几件事我不明白Swiftui 从一个列表到第二个列表,swiftui,Swiftui,从第一个列表视图中,用户选择一行。然后出现第二个列表视图,用户再次选择一行,然后我们进入详细视图(参见屏幕转储)。有几件事我不明白 为什么“潘塔纳尔”图像在所有三个视图上都重复 在细节视图中,我有两个“后退按钮”。我只想要一个 课程顺便问一下,为什么一个按钮被称为“后退”而不是 "发展"? 为什么列表视图2中的图像和 名单 第一个列表视图的我的代码: struct EggList: View { var eggs = Egg.all() var body: some View {
struct EggList: View {
var eggs = Egg.all()
var body: some View {
VStack{
Image("Pantanal")
.resizable()
.scaledToFill()
.clipped()
.listRowInsets(EdgeInsets())
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 250)
.edgesIgnoringSafeArea(.all)
.aspectRatio(contentMode: .fit)
NavigationView {
List(eggs) { egg in
NavigationLink(destination: EggDayList(egg: egg)) {
CellRow(egg: egg)
}
}
.navigationBarTitle(Text("Egg overview"), displayMode: .inline)
}
}
}
}
struct EggDayList: View {
var egg = Egg.all().first
var body: some View {
NavigationView {
List(egg!.calcWeights) { eggDay in
NavigationLink(destination: EggDetail()) {
CellDayRow(eggDay: eggDay)
}
}
}.navigationBarTitle("Development")
}
}
第二个列表视图的我的代码:
struct EggList: View {
var eggs = Egg.all()
var body: some View {
VStack{
Image("Pantanal")
.resizable()
.scaledToFill()
.clipped()
.listRowInsets(EdgeInsets())
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: 250)
.edgesIgnoringSafeArea(.all)
.aspectRatio(contentMode: .fit)
NavigationView {
List(eggs) { egg in
NavigationLink(destination: EggDayList(egg: egg)) {
CellRow(egg: egg)
}
}
.navigationBarTitle(Text("Egg overview"), displayMode: .inline)
}
}
}
}
struct EggDayList: View {
var egg = Egg.all().first
var body: some View {
NavigationView {
List(egg!.calcWeights) { eggDay in
NavigationLink(destination: EggDetail()) {
CellDayRow(eggDay: eggDay)
}
}
}.navigationBarTitle("Development")
}
}
1:您定义了多个导航。但第一个会在每一页上重复。因此,您将在每页上看到标题。如果您不喜欢此行为,请将图像移动到
NavigationView
2.1:因为您设置了两个导航,所以去掉第二个导航,您将只看到一个后退按钮
2.2:因为navigationBarTitle
应该在内部NavigationView
。比如:
NavigationView {
Text("test").navigationBarTitle("This navigation title will be used for next back button")
}
3:由于有多个NavigationView
s,每次转到下一页时,列表上方初始化的新NavigationView
看起来都是空白
注意
导航视图
类似于UINavigationController
。因此,每次构建一个控制器时,就像构建一个新控制器。但是只需要一个控制器。1:您定义了多个导航。但第一个会在每一页上重复。因此,您将在每页上看到标题。如果您不喜欢此行为,请将图像移动到NavigationView
2.1:因为您设置了两个导航,所以去掉第二个导航,您将只看到一个后退按钮
2.2:因为navigationBarTitle
应该在内部NavigationView
。比如:
NavigationView {
Text("test").navigationBarTitle("This navigation title will be used for next back button")
}
3:由于有多个NavigationView
s,每次转到下一页时,列表上方初始化的新NavigationView
看起来都是空白
注意导航视图
类似于UINavigationController
。因此,每次构建一个控制器时,就像构建一个新控制器。但只需要一个控制器