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

问题描述 投票:0回答:1

我想创建一个弹出菜单,例如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")
            }
        )
    }
}
swiftui
1个回答
0
投票

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

的副本

Present Modal fullscreem SwiftUI

© www.soinside.com 2019 - 2024. All rights reserved.