【问题标题】: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 不起作用。

谢谢!

【问题讨论】:

    标签: ios swiftui


    【解决方案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 不会引导到定义的视图,而是什么也没发生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2012-06-11
    • 1970-01-01
    相关资源
    最近更新 更多