使用 SwiftUI 将设备旋转到横向时出现的导航栏
Navigation Bar appearing when device is rotated to landscape using SwiftUI
屏幕运行良好(无导航栏):
- iPhone 纵向模式
- iPad 纵向模式
- iPad横向模式
它仅在 iPhone 横向模式下显示导航栏(无处不在)。
任何人都可以建议我做错了什么,或者即使在 iPhone 横向模式下也可以做些什么来使导航栏消失?
提前致谢。
在此附上纵向和横向模式的屏幕截图。
Navigation bar appearing in landscape mode
Working fine (no navigation bar) in portrait mode
struct LoginView: View {
@ObservedObject var vm = LoginVM()
var body: some View {
NavigationView {
VStack {
TextField("Username", text: $vm.username)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue, lineWidth: 0.5))
.padding([.top, .bottom])
SecureField("Password / SMS Code", text: $vm.password)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue, lineWidth: 0.5))
.padding(.bottom, 20)
HStack {
Spacer()
NavigationLink(
destination: ForgotPassView(),
label: {
Text("Forgot Password ?")
}).padding(.bottom, 40)
}
}.padding()
}
.navigationViewStyle(StackNavigationViewStyle())
}
}
将 .navigationBarHidden(true)
添加到 NavigationView
的子视图:
var body: some View {
NavigationView {
VStack {
TextField("Username", text: $vm.username)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue, lineWidth: 0.5))
.padding([.top, .bottom])
SecureField("Password / SMS Code", text: $vm.password)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue, lineWidth: 0.5))
.padding(.bottom, 20)
HStack {
Spacer()
NavigationLink(
destination: ForgotPassView(),
label: {
Text("Forgot Password ?")
}).padding(.bottom, 40)
}
}
.padding()
.navigationBarHidden(true) //<-- here
}
.navigationViewStyle(StackNavigationViewStyle())
}
谢谢,只是:
.navigationViewStyle(StackNavigationViewStyle())
适合我!
屏幕运行良好(无导航栏):
- iPhone 纵向模式
- iPad 纵向模式
- iPad横向模式
它仅在 iPhone 横向模式下显示导航栏(无处不在)。
任何人都可以建议我做错了什么,或者即使在 iPhone 横向模式下也可以做些什么来使导航栏消失? 提前致谢。
在此附上纵向和横向模式的屏幕截图。
Navigation bar appearing in landscape mode
Working fine (no navigation bar) in portrait mode
struct LoginView: View {
@ObservedObject var vm = LoginVM()
var body: some View {
NavigationView {
VStack {
TextField("Username", text: $vm.username)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue, lineWidth: 0.5))
.padding([.top, .bottom])
SecureField("Password / SMS Code", text: $vm.password)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue, lineWidth: 0.5))
.padding(.bottom, 20)
HStack {
Spacer()
NavigationLink(
destination: ForgotPassView(),
label: {
Text("Forgot Password ?")
}).padding(.bottom, 40)
}
}.padding()
}
.navigationViewStyle(StackNavigationViewStyle())
}
}
将 .navigationBarHidden(true)
添加到 NavigationView
的子视图:
var body: some View {
NavigationView {
VStack {
TextField("Username", text: $vm.username)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue, lineWidth: 0.5))
.padding([.top, .bottom])
SecureField("Password / SMS Code", text: $vm.password)
.padding()
.overlay(RoundedRectangle(cornerRadius: 10)
.stroke(Color.blue, lineWidth: 0.5))
.padding(.bottom, 20)
HStack {
Spacer()
NavigationLink(
destination: ForgotPassView(),
label: {
Text("Forgot Password ?")
}).padding(.bottom, 40)
}
}
.padding()
.navigationBarHidden(true) //<-- here
}
.navigationViewStyle(StackNavigationViewStyle())
}
谢谢,只是:
.navigationViewStyle(StackNavigationViewStyle())
适合我!