Представление представления поверх представления навигации в swiftUI
У меня есть MainView, который представляет собой вид навигации, и он представляет здесь вид через NavigationLink, то есть SubView. В SubView я хочу представить представление поверх подпредставления на кнопочном переключателе, скрывая панель навигации и содержимое подпредставления. Я пробовал использовать ZStack, но, похоже, он не скрывает панель навигации, поскольку она все еще является частью стека навигации. Есть ли другой способ добиться этого?
Код выглядит так:
struct MainView: View {
var body: some View {
NavigationView {
List {
NavigationLink(destination: SubView()) {
Text("Go to Another View")
}
}
}
}
}
struct SubView : View {
@State private var showTopSheet: Bool = false
var body: some View {
ZStack {
Text("Content goes here")
if showTopSheet {
TopSheet(showTopSheet: $showTopSheet).transition(.move(edge: .top))
}
}.navigationBarTitle("SubView")
.navigationBarBackButtonHidden(true)
.navigationBarItems(trailing: Button(action: {
self.showTopSheet.toggle()
}) {
Image(systemName: "folder.circle")
})
}
}
struct TopSheet: View {
@Binding var showTopSheet: Bool
var body: some View {
GeometryReader { geo in
VStack {
ZStack {
Rectangle().fill(Color.orange)
.frame(height: geo.size.height * 364 / 744)
HStack {
Text("View")
Button(action: {
self.showTopSheet.toggle()
}) {
Image("Icon Close").renderingMode(.original)
}
}
}
Spacer()
}.edgesIgnoringSafeArea([.top, .bottom])
.background(Color(UIColor(red:0.1, green:0.1, blue:0.12, alpha:0.9)))
}
}
}
Заранее спасибо:)