上下文菜单中的导航链接

Posted

技术标签:

【中文标题】上下文菜单中的导航链接【英文标题】:NavigationLink in contextMenu 【发布时间】:2020-04-10 17:14:12 【问题描述】:

我一直在 contextMenu 中试验 NavigationLink,并遇到了这个问题:

import SwiftUI

struct ContentView: View 
    var body: some View 
        NavigationView 
            VStack 
                Text("foo")
                    .contextMenu 
                        NavigationLink(destination: Text("foo context destination"))  //works
                            Text("foo context")
                        
                    
                    .padding(.all)

                NavigationLink(destination: Text("bar destination"))  //works
                    Text("bar")
                        .contextMenu 
                            NavigationLink(destination: Text("bar context destination"))   //does not work
                                Text("bar context")
                            
                        
                
                .padding(.all)
             //VStack
         //NavigationView
     //body
 //ContentView

如代码所示,contextMenu 中的 NavigationLink 似乎适用于“foo context”,但不适用于“bar context”。不同之处在于 'foo' 包含在 NavigationLink 中,但 'bar' 不是。对于解决“栏上下文”导航问题的任何建议,我将不胜感激。

编辑:澄清一下,我想找到一种通过点击“栏”导航到“栏目标”的方法,或者通过点击 contextMenu 中的“栏上下文”导航到“栏上下文目标”。问题似乎是,当“bar”被包裹在 NavigationLink 中时,附加到“bar”的 contextMenu 中的 NavigationLink 不起作用。

谢谢!

【问题讨论】:

【参考方案1】:

我已对您的代码进行了更改,以使“foo”和“bar”都能正常工作。

import SwiftUI

struct ContentView: View 
    var body: some View 
        NavigationView 
            VStack 
                Text("foo")
                    .contextMenu 
                        NavigationLink(destination: Text("foo context destination"))  //works
                                Text("foo context")
                            
                    
                .padding(.all)
                Text("bar")
                    .contextMenu 
                        NavigationLink(destination: Text("bar context destination"))   //does not work
                            Text("bar context")
                            
                    
                .padding(.all)
             //VStack
         //NavigationView
     //body
 //ContentView

【讨论】:

谢谢,但我需要在 NavigationLink 中保留“栏”。从“栏”中删除 NavigationLink 确实解决了“栏上下文”的问题,但我需要一种方法来从“栏”和“栏上下文”导航到各自的目的地。 在 xcode 12、ios14 中似乎不再起作用; NavigationLink 不会引导到定义的视图,而是什么也没发生

以上是关于上下文菜单中的导航链接的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 中的 Webview 确实显示了导航菜单和背景徽标

Extjs 4.1.1 将上下文菜单链接到网格

Xcode Beta 6“没有更多上下文的表达式类型不明确”导航链接

Xcode Beta 6“没有更多上下文的表达式类型不明确”导航链接

SwiftUI:contextMenu 菜单

无法使用 Cocoa 中的服务在 Finder 的上下文菜单中添加项目