len*_*nny 5 swift swiftui swiftui-navigationlink
您可以在 swiftUI 中将aNavigationLink
用作 aMenu
的项目吗?
它似乎什么都不做:
Menu {
NavigationLink(destination: Text("test1")) {
Text("item1")
}
NavigationLink(destination: Text("test2")) {
Text("item2")
}
} label: {
Text("open menu")
}
Run Code Online (Sandbox Code Playgroud)
如果它不能像上面尝试的那样工作,是否有其他方法可以实现预期的结果?
Asp*_*eri 15
init(destination:isActive:label:) 自 iOS 16 起已弃用
'init(destination:isActive:label:)' 在 iOS 16.0 中已弃用:在 NavigationStack 或 NavigationSplitView 中使用 NavigationLink(value:label:)
NavigationLink
应该在NavigationView
层次结构内部。这Menu
是在导航视图之外,因此将按钮放在菜单内,以激活导航视图内放置的导航链接,例如。隐藏在背景中。
这是可能方法的演示(使用 Xcode 12.1 / iOS 14.1 测试)
struct DemoNavigateFromMenu: View {
@State private var navigateTo = ""
@State private var isActive = false
var body: some View {
NavigationView {
Menu {
Button("item1") {
self.navigateTo = "test1"
self.isActive = true
}
Button("item2") {
self.navigateTo = "test2"
self.isActive = true
}
} label: {
Text("open menu")
}
.background(
NavigationLink(destination: Text(self.navigateTo), isActive: $isActive) {
EmptyView()
})
}
}
}
Run Code Online (Sandbox Code Playgroud)