如何在swiftui中的navigationitems下面创建一个弹出菜单

Posted

技术标签:

【中文标题】如何在swiftui中的navigationitems下面创建一个弹出菜单【英文标题】:How to create a popup menu below navigationitems in swiftui 【发布时间】:2019-07-24 11:16:36 【问题描述】:

我想创建一个弹出菜单,例如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】:

我认为这个答案可以帮助你。有使用 zstack 显示弹出窗口。 可能是 >

的副本

Present Modal fullscreem SwiftUI

【讨论】:

请在此处发布答案的相关部分,因为链接可能会随着时间而改变。

以上是关于如何在swiftui中的navigationitems下面创建一个弹出菜单的主要内容,如果未能解决你的问题,请参考以下文章

如何在 macOS 上检测 SwiftUI 中的键盘事件?

如何知道 UIKit 视图控制器中的 swiftUI 事件? ||如何提供 swiftUI 和 uikit 之间的通信

如何在 SwiftUI 中的 PageViewController 中传递一些视图?

如何在 SwiftUI 中的列表下方添加一个按钮? [关闭]

如何有效地过滤 SwiftUI 中的长列表?

如何在swiftui中的视图之间传递变量?