ios - contextMenu中的NavigationLink

标签 ios swiftui

我一直在使用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”则没有。对于使用“栏上下文”导航解决问题的任何建议,我将不胜感激。

编辑:为澄清起见,我想找到一种方法,通过点击“bar”导航到“bar destination”,或者通过在contextMenu中点击“bar context”导航到“bar context destination”。问题似乎是当“bar”包裹在NavigationLink中时,附加到“bar”的contextMenu中的NavigationLink无法正常工作。

谢谢!

最佳答案

我已经对您的代码进行了更改,以使“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

关于ios - contextMenu中的NavigationLink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61145251/

相关文章:

ios - 字典在展开可选值时意外发现 nil

ios - 如何在 SwiftUI 中基于绑定(bind)枚举更改 View 的样式?

swift - 当我在文本字段中编辑文本时,NavigationLink 会激活

列表中的 SwiftUI NavigationLink

ios - 在 iOS 7 上压缩的 UITableView sectionIndexTitles

android - 移动设备是否有足够的 CPU 来支持网站所有流量的 HTTPS?

ios - 使用 setContentOffset 将 UITableView 滚动到特定位置无法正常工作 - ObjC

IOS 无法添加多边形标记 仅绘制折线 未添加标记

SwiftUI - 当第 1 个 DetailView 使用 navigationView 返回 MasterView 时如何自动推送第 2 个 DetailView

ios - 在回调中以编程方式推送 View ,SwiftUI