我仍在学习SwiftUI,并且正在使用NavigationView,并且能够以纵向模式隐藏顶部导航栏,但是有两个问题。
1。)在横向模式下,仍然有一个顶部栏位于视图顶部。将其拉下会降低通知中心/设置
2。)在视图中点击按钮后,它将移至DetailView,但是短暂加载了顶部导航栏,然后将其隐藏。如何停止加载导航。
GIF of button to next view-从点击按钮到移动到下一视图再到切换为横向模式的流程
任何反馈或方法都值得赞赏。谢谢!
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: DetailView()) {
Text("Hello World")
.fontWeight(.bold)
.font(.title)
.padding()
.background(Color.blue)
.cornerRadius(40)
.foregroundColor(.blue)
.padding(10)
.overlay(
RoundedRectangle(cornerRadius: 40)
)
}
.navigationBarTitle("", displayMode: .inline)
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
//.edgesIgnoringSafeArea([.top, .bottom])
//.navigationViewStyle(StackNavigationViewStyle())
//.navigationViewStyle(DoubleColumnNavigationViewStyle())
}
}
.navigationBarTitle("", displayMode: .inline)
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
//.statusBar(hidden: true)
}
}
答案 0 :(得分:2)
在消失之前,我还看到了在目标视图中短暂显示的导航栏。为了解决这个问题,我将导航栏属性添加到NavigationLink调用中的目标视图参数中。对于您的示例,它看起来像这样:
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: DetailView()
.navigationBarTitle("", displayMode: .inline)
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
) { // The rest of your code...