ฉันทำงานให้โครงการนั้นก็คือพยายามของขวัญและไม่สนใจมุมมองใน NavigationView ใช้ของรัฐและผูกมัดหรอ. เหตุผลที่ฉันทำเรื่องนี้คือมันมีข้อผิดพลาดของ@สภาพแวดล้อม(.presentationMode)variance presentaionMode:ผูกมัดหรอ คุณครูแต่พอกลับมา มันทำให้แปลกพฤติกรรม มันเป็นคุยกันเรื่องในโพสลง ที่นี่.
ตัวอย่างด้านล่างนี้มีสามมุมมองที่ progressively โหลดอยู่ที่มุมมอง สองคนแรก ContentView จะ NavView1 ของขวัญและไม่สนใจอย่างสมบูรณ์ อย่างไรก็ตามครั้ง NavView2 คือโหลดปุ่มที่จะใช้ในการเปิด/ปิดการแสดงของรัฐของ presentNavView2 ต้องการเพิ่มอีก NavView2 องมุมมองที่ตั้งและไม่ได้ไม่สนใจมันอย่างที่คาดไว้เลย คิดอะไรออกว่าทำไมแม่คนนี้ถึงจะเป็น?
ContentView
struct ContentView: View {
@State private var presentNavView1 = false
var body: some View {
NavigationView {
List {
NavigationLink(destination: NavView1(presentNavView1: self.$presentNavView1), isActive: self.$presentNavView1, label: {
Button(action: {
self.presentNavView1.toggle()
}, label: {
Text("To NavView1")
}) // Button
}) // NavigationLink
} // List
.navigationTitle("Home")
} // NavigationView
} // View
}
NavView1
struct NavView1: View {
@State private var presentNavView2 = false
@Binding var presentNavView1: Bool
var body: some View {
List {
NavigationLink(destination: NavView2(presentNavView2: self.$presentNavView2), isActive: self.$presentNavView2, label: {
Button(action: {
self.presentNavView2.toggle()
}, label: {
Text("To NavView2")
}) // Button
}) // NavigationLink
Button(action: {
self.presentNavView1.toggle()
}, label: {
Text("Back")
})
} // List
.navigationTitle("NavView1")
} // View
}
NavView2
struct NavView2: View {
@Binding var presentNavView2: Bool
var body: some View {
VStack {
Text("NavView2")
Button(action: {
self.presentNavView2.toggle()
}, label: {
Text("Back")
}) // Button
} // VStack
.navigationTitle("NavView2")
}
}