如何在swiftui中的导航项下方创建弹出菜单

时间:2019-07-24 11:16:36

标签: swiftui

我想创建一个弹出菜单,如this

,它具有清晰的全屏覆盖,触摸覆盖时,弹出菜单将消失。

我尝试将覆盖添加到根视图,并向其添加菜单列表视图,对其进行硬编码位置和框架,与navigationItem对齐,然后创建一个EnvironmentObject来存储覆盖的切换。 在此之后,我达到了目标,但我认为这是机械的,所以我的问题是,有没有很好的方法来做到这一点?就像只使​​用视图修饰符,还是步长较少的修饰符?

这是我的根视图:

struct Root : View { 
    TabbedView {
        NavigationView {
           HomePage()
        }
    }.overlay(...)  <-- add a overlay at root view.
}

struct HomePage : View {
    var body: some View {
        ZStack {
            List {...}
        }
        .navigationBarTitle("Home")
        .navigationBarItems(trailing: 
            Button(action: {
                // show popup menu
            }) {
                Image(systemName: "plus.circle")
            }
        )
    }
}

1 个答案:

答案 0 :(得分:0)

我认为此答案可以为您提供帮助。有使用zstack显示弹出窗口。 可能是>

的副本
  

Present Modal fullscreem SwiftUI