[英]How hide navigation bar always back from any view directly using NavigationView?
I am using xcode-14.2 & minimum target version 14. I have three views ContentView
, Welcome
& `FundTransfer.我正在使用 xcode-14.2 和最低目标版本 14。我有三个视图
ContentView
、 Welcome
和`FundTransfer。 Here is my case.这是我的情况。
Welcome
page button click it goes to Welcome
pageWelcome
页面按钮时,它会转到Welcome
页面Fund Transfer
button is clicked, it goes to FundTransfer
viewFund Transfer
按钮时,它会进入FundTransfer
视图FundTransfer
- when Log out
button is clicked, it goes to ContentView
FundTransfer
- 单击Log out
按钮时,它转到ContentView
It goeslike: ContentView-> FundTransfer-> ContentView它是这样的:ContentView-> FundTransfer-> ContentView
Problem: When it goes from FundTransfer
view to ContentView
it shows navigationBar.问题:当它从
FundTransfer
视图转到ContentView
时,它显示导航栏。 That means when back from FundTransfer
view to ContentView
shows navigationBar which was hidden at the first.这意味着当从
FundTransfer
视图返回到ContentView
时,会显示最初隐藏的导航栏。
How do I hide navigation bar always back from any view directly to ContentView
?如何隐藏导航栏总是从任何视图直接返回到
ContentView
?
Here is my code: ContentView:这是我的代码: ContentView:
struct ContentView: View {
@State private var showWelcome = false
@State var isNavigationBarHidden: Bool = true
var body: some View {
NavigationView {
VStack {
ScrollView {
VStack(alignment: .customCenter,spacing: 0){
VStack {
SubmitButton(action: {
self.showWelcome = true
}) {
Text("Welcome page")
}
}
NavigationLink(destination: Welcome(), isActive: $showWelcome) { EmptyView() }
}
}
}
.navigationBarTitle("") //this must be empty
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
}
}
Welcome View:欢迎查看:
struct Welcome: View {
@State private var showFundTransfer = false
@Environment(\.presentationMode) var presentationMode
var body: some View {
VStack {
ScrollView {
VStack(alignment: .customCenter,spacing: 0){
VStack {
SubmitButton(action: {
showFundTransfer = true
}) {
Text("Fund Transfer")
}
}
NavigationLink(destination: FundTransfer(), isActive: $showFundTransfer) { EmptyView() }
}
}
.navigationBarHidden(true)
}
}
}
FundTransfer View:资金转账视图:
struct FundTransfer: View {
@State var isNavigationBarHidden: Bool = true
@State private var logon = false
var body: some View {
VStack {
ScrollView {
VStack(alignment: .customCenter,spacing: 0){
SubmitButton(action: {
self.logon = true
}) {
Text("Log out")
}
}
}
NavigationLink(destination: ApplicationSwitcher(), isActive: $logon) { EmptyView() }.opacity(0)
}
.navigationBarHidden(true)
}
}
Please help me..请帮我..
Add.navigationBarHidden(true) in NavigationLink also for eg: NavigationLink 中的 Add.navigationBarHidden(true) 也适用于 eg:
NavigationLink(destination: ApplicationSwitcher()
.navigationBarHidden(true), isActive: $logon) { EmptyView() }.opacity(0)
In ContentView add "navigationBarHidden(true)" after the closure of NavigationView instead of VStack as mentioned below:在 ContentView 中,在关闭 NavigationView 而不是 VStack 之后添加“navigationBarHidden(true)”,如下所述:
NavigationView {
...
}.navigationBarTitle("")
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.