在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)))
        }
    }
}

预先感谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...