Swiftui 在Swift UI中导航链接至灰色屏幕
我是SwiftUI新手,有一个bug,当我使用过多的导航链接时,我的整个屏幕会变成灰色。 我在研究bug时找不到任何解决方案。 我正在最新版本的Xcode 12.4上运行该项目。 我当前的设置是有两个不同的swiftUI视图,每个视图都包含一个指向另一个视图的导航链接 代码: PageOne.swift PageTwo.swiftSwiftui 在Swift UI中导航链接至灰色屏幕,swiftui,swiftui-navigationlink,swiftui-navigationview,Swiftui,Swiftui Navigationlink,Swiftui Navigationview,我是SwiftUI新手,有一个bug,当我使用过多的导航链接时,我的整个屏幕会变成灰色。 我在研究bug时找不到任何解决方案。 我正在最新版本的Xcode 12.4上运行该项目。 我当前的设置是有两个不同的swiftUI视图,每个视图都包含一个指向另一个视图的导航链接 代码: PageOne.swift PageTwo.swift 视图层次结构中应该只有一个NavigationView 尝试在根级别创建一个NavigationView: struct ContentView: View {
视图层次结构中应该只有一个
NavigationView
尝试在根级别创建一个NavigationView
:
struct ContentView: View {
var body: some View {
NavigationView {
PageOne()
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
}
}
然后从子视图中删除NavigationView
:
struct PageOne: View {
var body: some View {
VStack {
Text("This is page 1")
.font(.system(size: 36, weight: .bold))
.padding(.bottom)
NavigationLink(
destination: PageTwo(),
label: {
VStack {
Text("Go to Page 2")
.font(.system(size: 24, weight: .medium))
.foregroundColor(.white)
.frame(width: 200, height: 50, alignment: .center)
.background(Color.blue)
.cornerRadius(12)
}
})
}
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
}
这是很多导航视图…这回答了你的问题吗?同样的问题-这样做帮助了我:
struct ContentView: View {
var body: some View {
NavigationView {
PageOne()
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
}
}
struct PageOne: View {
var body: some View {
VStack {
Text("This is page 1")
.font(.system(size: 36, weight: .bold))
.padding(.bottom)
NavigationLink(
destination: PageTwo(),
label: {
VStack {
Text("Go to Page 2")
.font(.system(size: 24, weight: .medium))
.foregroundColor(.white)
.frame(width: 200, height: 50, alignment: .center)
.background(Color.blue)
.cornerRadius(12)
}
})
}
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
}
struct PageTwo: View {
var body: some View {
VStack {
Text("This is page 2")
.font(.system(size: 36, weight: .bold))
.padding(.bottom)
NavigationLink(
destination: PageOne(),
label: {
VStack {
Text("Go to Page 1")
.font(.system(size: 24, weight: .medium))
.foregroundColor(.white)
.frame(width: 200, height: 50, alignment: .center)
.background(Color.blue)
.cornerRadius(12)
}
})
}
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
}