从一个列表到第二个列表
from one list to a second List
用户从第一个列表视图中选择了一行。然后出现第二个列表视图,用户再次选择一行,然后我们进入详细视图(参见屏幕转储)。有几件事我不明白。
- 为什么 'pantanal' 图像在所有三个视图上重复出现?
- 在详细视图中我得到两个 'back buttons'。我只想要其中之一
课程。顺便说一句,为什么一个按钮叫做 'Back' 而不是
'Development'?
- 为什么列表视图 2 中的图像和
名单?
我的第一个列表视图代码:
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 : 您定义了多个导航。但是第一个在每一页上重复。所以你会在每一页上看到 header。如果您不喜欢这种行为,请将图像 移到 中 NavigationView
2.1 : 因为你设置了两个导航,把第二个去掉,你只会看到一个后退按钮
2.2:因为navigationBarTitle
应该在里面NavigationView
。喜欢:
NavigationView {
Text("test").navigationBarTitle("This navigation title will be used for next back button")
}
3 : 因为有多个NavigationView
,所以每次翻到下一页,新的NavigationView
在列表上方初始化(没有标题)看起来像空的space.
注意 NavigationView
类似于 UINavigationController
。所以每次你构建一个,就好像你构建了一个新的控制器。但只需要一个控制器。
用户从第一个列表视图中选择了一行。然后出现第二个列表视图,用户再次选择一行,然后我们进入详细视图(参见屏幕转储)。有几件事我不明白。
- 为什么 'pantanal' 图像在所有三个视图上重复出现?
- 在详细视图中我得到两个 'back buttons'。我只想要其中之一 课程。顺便说一句,为什么一个按钮叫做 'Back' 而不是 'Development'?
- 为什么列表视图 2 中的图像和 名单?
我的第一个列表视图代码:
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 : 您定义了多个导航。但是第一个在每一页上重复。所以你会在每一页上看到 header。如果您不喜欢这种行为,请将图像 移到 中 NavigationView
2.1 : 因为你设置了两个导航,把第二个去掉,你只会看到一个后退按钮
2.2:因为navigationBarTitle
应该在里面NavigationView
。喜欢:
NavigationView {
Text("test").navigationBarTitle("This navigation title will be used for next back button")
}
3 : 因为有多个NavigationView
,所以每次翻到下一页,新的NavigationView
在列表上方初始化(没有标题)看起来像空的space.
注意 NavigationView
类似于 UINavigationController
。所以每次你构建一个,就好像你构建了一个新的控制器。但只需要一个控制器。