[英]How to pass data between SwiftUI views using NavigationLink
我正在進行一個小型 SwiftUI 練習,以了解如何使用 NavigationLink 在視圖之間傳遞數據。 我將 ContentView 設置為在點擊 ContentView NavigationLink 后向 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())
}
}
反饋表示贊賞。 謝謝!
刪除第二個導航視圖
struct SecondView: View {
var message: String
var body: some View {
VStack(spacing: 100 ) {
Text("\(message)")
NavigationLink(destination: ThirdView(message: self.message)) {
Text("Go to Third View")
}
}
}
}
struct ThirdView: View {
var message: String
var body: some View {
Text("\(message)")
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.