想知道是否还有其他人遇到此问题,以及是否找到了解决方法。这在iOS 13中可以正常工作,但在iOS 14中似乎已损坏。 我只是想从.contextMenu触发到另一个视图的NavigationLink。
我的代码如下。
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
HStack {
Text("I am a text in a HStack ")
}
HStack {
NavigationLink(destination: TestView()) {
VStack {
Image(systemName:"gauge")
.font(.system(size: 31))
}
}
}
}
.contextMenu {
NavigationLink(destination: TestView()) {
Text("Navigate to TestView")
Image(systemName: "pencil")
}
}
}
}
}
目标TestView()只是样板“ Hello World”视图。
如果我单击堆栈中未关联的图标,则可以完美触发导航。但是上下文菜单中的相同链接没有。 当我在上下文菜单中选择它时,什么也没有发生。也就是说,我可以选择菜单项,但是它所做的就是关闭上下文菜单,并且我停留在同一视图上。
还有其他人发现吗?解决了吗? 谢谢
答案 0 :(得分:2)
这里是可能方法的演示。在Xcode 12b3 / iOS 14上进行了测试(对SwiftUI 1.0也有效)
struct ContentView: View {
@State private var showLink = false
var body: some View {
NavigationView {
VStack {
HStack {
Text("I am a text in a HStack ")
}
HStack {
NavigationLink(destination: Text("TestView")) {
VStack {
Image(systemName:"gauge")
.font(.system(size: 31))
}
}
}
}
.background(NavigationLink("", destination: Text("TestView"), isActive: $showLink))
.contextMenu {
Button(action: { self.showLink = true }) {
HStack {
Text("Navigate to TestView")
Image(systemName: "pencil")
}
}
}
}
}
}