能否在swiftUI中将NavigationLink
用作Menu
的项?
它似乎什么也不做:
Menu {
NavigationLink(destination: Text("test1")) {
Text("item1")
}
NavigationLink(destination: Text("test2")) {
Text("item2")
}
} label: {
Text("open menu")
}
如果它不像上面尝试的那样工作,是否有实现预期结果的替代方法?
2条答案
按热度按时间2jcobegt1#
自iOS 16起,init(目标:isActive:标签:)已弃用
“init(destination:isActive:label:)”在iOS 16.0中已弃用:在导航堆栈或导航拆分视图中使用导航链接(值:标签:)
NavigationLink
应该在NavigationView
层次结构内。Menu
在导航视图外,因此请将按钮放在菜单内,这些按钮可激活导航视图内的导航链接,例如隐藏在背景中。以下是一个可行方法的演示(使用Xcode 12.1 / iOS 14.1进行测试)
ltskdhd12#
我可以说Asperi的答案是一个很好的解决方案。它帮助了我们很多。但是我们需要一个自定义视图来保存destination属性中的引用,而不是字符串。
我们可以引用一个AnyView类型然后这样调用该视图:
欲了解更多详情,请参阅此帖子:https://developer.apple.com/forums/thread/119583