入口点(ContentView):
struct ContentView: View {
var body: some View {
NavigationView {
FirstView()
.navigationBarTitle("", displayMode: .inline)
.navigationBarHidden(true)
}
}
}
FirstView:
struct FirstView : View {
var body : some View {
NavigationLink(destination:
SecondView()
.navigationBarTitle("")
.navigationBarHidden(true)) {
Text("Fourth View")
}
}
}
SecondView:
struct SecondView : View {
var body : some View {
TabView {
FirstTabView()
.tabItem {
Image(systemName: "play.circle.fill")
Text("First Tab")
}
.navigationBarTitle("First Tab")
.navigationBarHidden(true)
SecondTabView()
.tabItem {
Image(systemName: "bell.fill")
Text("Second Tab")
}
.navigationBarTitle("Second Tab")
.navigationBarHidden(true)
}
}
}
FirstTabView
struct FirstTabView : View {
var body : some View {
VStack {
HStack(spacing: 10) {
Spacer()
Text("FIRST")
Spacer()
Text("SECOND")
Spacer()
}
.padding(.all)
Spacer()
}
.border(Color.red, width: 5)
}
}
SecondTabView与第一个非常相似,因此我将不包含它。
我现在遇到的问题是,TabViews的内容在忽略安全区域的情况下跳了起来(有关说明,请参阅随附的屏幕截图)。实际上,该视图在短时间内会按预期般完美地显示,然后立即跳转,破坏所有内容。
我发现只有在像我现在那样通过NavigationLink加载TabView时才会发生这种情况。如果我在ContentView上的NavigationView中直接加载SecondView()(换句话说,它是我加载的第一个视图),那么问题就消失了,一切都会按预期进行。
很抱歉,我无法包含问题的GIF-视图以预期的结果启动,然后在几秒钟后跃升并变为您在实际结果中看到的样子。
注意:在带有缺口的iPhone上,我的文字甚至不可见。另外,为了使我的观点更清楚,我也加了粗边框。
我刚刚发现锁定设备然后解锁可以使屏幕恢复正常。