如何从工作表中将新视图推送到导航堆栈上。我想显示课程列表。当点击其中一门课程时,应该会打开一张表格,显示有关该课程的详细信息。从工作表中,人们应该能够在新的全屏视图中开始课程。
import SwiftUI
struct ContentView: View {
var lessons = [Lesson(id:"1"), Lesson(id:"2"), Lesson(id:"3"), Lesson(id:"4"), Lesson(id:"5"), Lesson(id:"6"), Lesson(id:"7"), Lesson(id:"8"), Lesson(id:"9")]
var body: some View {
NavigationView(){
Form{
List(lessons){ lesson in
LessonButton(lesson: lesson)
}
}
}
}
}
struct LessonButton:View{
@State var showSheet = false
var lesson:Lesson
var body: some View {
Button(action:{self.showSheet = true}){
Text(lesson.name)
}.sheet(isPresented:$showSheet){
NavigationLink(destination: Text("reached")){
Text("start")
}
}
}
}
struct Lesson: Identifiable{
var id:String
var name: String{
"Lesson \(self.id)"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,NavigationLink 不起作用。我想,这是因为工作表不是内容视图的子视图。这可能就是它不起作用的原因。但怎样才能实现呢?
Sheet是模态视图模式,可以进入并返回。
实际上我不明白为什么在描述的场景中需要一张纸。正如您所描述的,这是预期的:
列表 -> 详细信息 -> 课程,
因此,请使用两个导航链接,一个在“列表”中,一个在“详细信息”中。这是 Apple 为 NavigationView/NavigationLink 使用而设计的 - 从一个视图到另一个视图的导航。
| 归档时间: |
|
| 查看次数: |
6595 次 |
| 最近记录: |