swift - 删除 SwiftUI 子视图中的大量空白
问题描述
当我在 NavigationView 中嵌套 NavigationView 时,大量的空格将后退按钮和新的导航栏标题分开。在设置我的 SwiftUI 视图方面我做错了什么吗?
import SwiftUI
struct Dashboard: View {
@EnvironmentObject var user: User
let courses = Course.exampleCourses()
var body: some View {
NavigationView {
List(courses) { course in
NavigationLink(destination: CourseView(course: course)) {
Text(course.name)
}
}.navigationBarTitle("Welcome, \(user.first)!")
}
}
}
import SwiftUI
struct CourseView: View {
// @ObservedObject allows us to update views whenever values in course change
@ObservedObject var course: Course
@EnvironmentObject var user: User
var body: some View {
NavigationView {
List {
NavigationLink(destination: WritingPromptView(prompt: "What is your course goal, \(user.first)?", explanationText: "This is the answer", textLocation: self.$course.goal)) {
Text("Course Goal")
}
NavigationLink(destination: NotepadView(parent: self.course)) {
Text("Notepad")
}
NavigationLink(destination: WritingPromptView(prompt: "<Reflection prompt goes here>", explanationText: "<How to reflect goes here>", textLocation: self.$course.reflection)) {
Text("Reflection")
}
}.navigationBarTitle(course.name)
}
}
}
解决方案
这是一个双导航栏。只需从 CourseView 中删除 NavigationView。如果您有 CourseView 的预览,您可能希望将 NavigationView 包装在那里。
推荐阅读
- amazon-web-services - AWS 事件日志命令
- javascript - 插件系统的电子前端
- java - Java 源文件无法从同一个包中导入已编译的 .class 文件
- laravel - 在 laravel 中安装模板
- php - 在 Laravel 中搜索逗号分隔的数据库字段并显示超过 4 个匹配数字的详细信息
- angular - 使用带有 Mat 弹出窗口的反应式控件 - Angular 7
- visual-studio - vusial studio 中的错误(E0869,无法设置区域设置“.1252”)
- sql - 在 oracle 中删除集合的重复项
- java - Java 的 ActiveProcessorCount 是否限制了 JVM 可以使用的 CPU 数量?
- android - 如何通过 exoplayer 播放 mp4?