Cal*_*nOz 5 contextmenu swiftui swiftui-navigationlink ios14 xcode12
想知道其他人是否也遇到此问题,以及是否找到了解决方法。这在 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")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Destination TestView() 只是一个样板“Hello World”视图。
如果我没有单击堆栈中关联的图标,则会完美触发导航。但上下文菜单中的相同链接却没有。当我在上下文菜单中选择它时,什么也没有发生。即,我可以选择菜单项,但它所做的只是关闭上下文菜单,并且我保持在同一视图上。
还有其他人发现这个吗?解决了吗?谢谢
这是可能方法的演示。使用 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")
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1498 次 |
| 最近记录: |