gpt4 book ai didi

ios - SwiftUI - NavigationLink View 中的 NavigationBar 快速显示然后消失

转载 作者:行者123 更新时间:2023-12-01 15:29:40 25 4
gpt4 key购买 nike

我有一个 ContentView包含 NavigationView这导致 DestinationView .我想隐藏ContentView中的导航栏, 但在 DestinationView 中显示.将其隐藏在 ContentView我设置navigationBarHiddentrue并给 navigationBarTitle一个空字符串。
DestinationView我设置navigationBarHidden为 false 并将其命名为“DestinationView”。

如果我运行项目并点击 NavigationLink , DestinationView显示 NavigationBar但在 View 出现后 swift 隐藏它。有人可以帮我吗?

struct ContentView: View {
var body: some View {
NavigationView {
ZStack {
Color.red.frame(maxWidth: .infinity, maxHeight: .infinity)
NavigationLink(destination: DestinationView()) {
ZStack {
Color.green.frame(width: 200, height: 200)
Text("Tap me")
}
}
}
.navigationBarTitle("")
.navigationBarHidden(true)
}
}
}

struct DestinationView: View {
var body: some View {
List {
Text("1")
Text("2")
}
.navigationBarTitle("DestinationView")
.navigationBarHidden(false)
}
}

enter image description here

最佳答案

您需要使用变量来实现这一点并将其与您的目的地绑定(bind)

struct ContentView: View {
@State var isNavigationBarHidden: Bool = true
var body: some View {
NavigationView {

ZStack {
Color.red.frame(maxWidth: .infinity, maxHeight: .infinity)
NavigationLink(destination: DestinationView(isNavigationBarHidden: self.$isNavigationBarHidden)) {
ZStack {
Color.green.frame(width: 200, height: 200)
Text("Tap me")
}
}

}
.navigationBarHidden(self.isNavigationBarHidden)
.navigationBarTitle("")
.onAppear {
self.isNavigationBarHidden = true
}
}
}
}

struct DestinationView: View {
@Binding var isNavigationBarHidden: Bool
var body: some View {
List {
Text("1")
Text("2")
}
.navigationBarTitle("DestinationView")

.onAppear {
self.isNavigationBarHidden = false
}
}
}

关于ios - SwiftUI - NavigationLink View 中的 NavigationBar 快速显示然后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60525468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com