ContextMenu 中的 NavigationLink 不再在 iOS14 xcode12 beta3 中工作?
Posted
技术标签:
【中文标题】ContextMenu 中的 NavigationLink 不再在 iOS14 xcode12 beta3 中工作?【英文标题】:NavigationLink in ContextMenu no longer working in iOS14 xcode12 beta3? 【发布时间】:2020-08-04 11:03:39 【问题描述】:想知道其他人是否有此问题,以及是否找到了解决方法。这在 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")
Destination TestView() 只是一个样板的“Hello World”视图。
如果我单击的不是堆栈中关联的图标,则会完美触发导航。但是上下文菜单中的相同链接没有。 当我在上下文菜单中选择它时,什么也没有发生。即我可以选择菜单项,但它所做的只是关闭上下文菜单并且我停留在同一个视图上。
还有人发现这个吗?解决了吗? 谢谢
【问题讨论】:
我认为这是一个错误。我不希望 NavigationLink 会在 NavigationView 之外工作,但 contextMenu 确实是一个不同的视图层次结构。在 NavigationView 中使用 NavigationLink(例如在后台不可见)并从 contextMenu 以编程方式激活。类似于下一个方法***.com/a/61181490/12299030 【参考方案1】:这是一个可能的方法的演示。使用 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")
【讨论】:
非常感谢您的回复和建议的方法 - 它也适用于 Xcode 12b4。也就是说,当您有许多 contextMenu 项目时,它可能会变得混乱。很遗憾,在 iOS13 中运行良好的东西在 iOS 14 中似乎没有。谢谢 在许多菜单项的情况下,您可以类似地使用一个背景 NavigationLink,但使用标签和选择进行初始化,因此每个菜单项都会激活选择,它可以是枚举,甚至可以根据该枚举更改目标...所以...生活还不错:)以上是关于ContextMenu 中的 NavigationLink 不再在 iOS14 xcode12 beta3 中工作?的主要内容,如果未能解决你的问题,请参考以下文章
macOS App SwiftUI 中的 ContextMenu 按钮点击
ContextMenu 中的 NavigationLink 不再在 iOS14 xcode12 beta3 中工作?
.ContextMenu 和 .ContextMenuStrip 之间的区别
在 LongPress 上显示 ContextMenu 以获取 xamarin 表单中的视图