swiftui 从菜单按钮打开视图

Posted

技术标签:

【中文标题】swiftui 从菜单按钮打开视图【英文标题】:swiftui open view from menu button 【发布时间】:2020-11-03 20:51:02 【问题描述】:

我正在尝试做一些非常基本的事情,但是我已经通过了官方教程,并且通过了几十个堆栈溢出帖子。我正在尝试从菜单按钮打开一个活动。当我这样做时,我确实想要标准的导航返回箭头。

var body: some View 
        NavigationView 
            VStack(alignment: .leading) 
                Text("Hello World!")
                            .toolbar 
                ToolbarItem(placement: .primaryAction) 
                    Menu 
                        Button(action: 
                            Activities()
                        ) 
                            Label("Activities", systemImage: "doc")
                        

“Activities()”是我的观点。当我这样做时,什么也没有发生。我在其他帖子中读到,您也不能在菜单中拥有导航链接,如果可行的话就可以了。如何以编程方式打开视图以使后退箭头起作用?

谢谢

【问题讨论】:

【参考方案1】:

在这种情况下,如果您想打开一个视图但不能直接使用 NavigationLink,您可以在其他地方使用它并通过 State 属性从按钮以编程方式激活它:

@State private var isShowingDetailView = false
var body: some View 
    NavigationView 
        VStack(alignment: .leading) 
            NavigationLink(destination: Activities(), isActive: $isShowingDetailView) 
                EmptyView()
            
            Text("Hello World!")
                .toolbar 
                    ToolbarItem(placement: .primaryAction) 
                        Menu 
                            Button(action: 
                                isShowingDetailView = true
                            ) 
                                Label("Activities", systemImage: "doc")
                            
                        
                    
        
    

【讨论】:

但这不起作用?导航链接在菜单中不起作用。我已经试过了。除非我错过了什么 @noone392 抱歉,我没有意识到这一点。我更新了我的答案 非常感谢!这工作得很好。我在理解 State 变量时遇到了麻烦。要使其正常工作,需要注意一件事,即导航链接,需要位于 Vstack 内,否则它不会在屏幕上显示任何内容

以上是关于swiftui 从菜单按钮打开视图的主要内容,如果未能解决你的问题,请参考以下文章

使用SwiftUI。单击后,“我的滑块/侧面菜单”会启动新视图,但单击按钮,现在所有选项均为'dead'

iOS:如何使用侧边菜单、SwiftUI 切换视图

SwiftUI:contextMenu 菜单

SwiftUI - 如何关闭假的模态视图 - 从里面的第二个视图,用关闭按钮?

如何使用 SwiftUI 按钮打开本地 PDF 文件?

如何从导航栏按钮导航到新视图在 SwiftUI 中单击