【发布时间】:2021-12-25 20:22:23
【问题描述】:
我正在参与一个小型 SwiftUI 练习,以了解如何使用 NavigationLink 在视图之间传递数据。在点击 ContentView NavigationLink 后,我将 ContentView 设置为向 SecondView 发送消息。点击 SecondView 中的 NavigationLink,然后将消息发送到 ThirdView。但是,当我到达 ThirdView 时,我注意到一个奇怪的 UI 出现。请看下面的截图:
知道为什么会出现此 NavigationView 问题吗?它与在所有 3 个视图中都有 NavigationView 有关吗?
这是我的代码:
内容视图
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(destination: SecondView(message: "Hello from ContentView")) {
Text("Go to Second View")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
第二视图
struct SecondView: View {
var message: String
var body: some View {
Text("\(message)")
NavigationView {
NavigationLink(destination: ThirdView(message: self.message)) {
Text("Go to Third View")
}
}
}
}
struct SecondView_Previews: PreviewProvider {
static var previews: some View {
SecondView(message: String())
}
}
第三视图
struct ThirdView: View {
var message: String
var body: some View {
NavigationView {
Text("\(message)")
}
}
}
struct ThirdView_Previews: PreviewProvider {
static var previews: some View {
ThirdView(message: String())
}
}
非常感谢您的反馈。谢谢!
【问题讨论】:
-
"这是否与在所有 3 个视图中使用 NavigationView 有关?"是的。您的层次结构中应该只有 一个
NavigationView(在最顶层的父视图中) -
这能回答你的问题吗? SwiftUI NavigationView layout issues
标签: swift swiftui swiftui-list swiftui-navigationlink swiftui-navigationview