如何将 Menu
放在 NavigationLink
目的地?当我点击它时,这种方法只打开目的地,而从不打开菜单。
var body: some View {
NavigationView {
NavigationLink (
destination: Text("Hello")
label: {
ZStack(alignment: .topTrailing){
Rectangle()
.frame(width: 300, height: 100)
Menu {
Button("Order Now", action: {print("1")})
Button("Adjust Order", action: {print("2")})
} label: {
Label("Options", systemImage: "paperplane")
}
}
})
.buttonStyle(PlainButtonStyle())
}
}
编辑:澄清一下:菜单位于右上角。当我点击这个菜单按钮时,菜单应该会出现。否则,当我点击视图的其余部分时,应该打开 NavigationLink 的目的地
答案 0 :(得分:1)
好吧..第三次是魅力..他们这么说!
我让它变得比它需要的更难,但这是 Menu
的一个工作示例,我自己从中学到了
import SwiftUI
struct navViewTest: View {
var body: some View {
NavigationView {
VStack {
Text("Hello World")
}.navigationBarItems(trailing:
Menu {
Button("Option 1", action: {doSomething() })
Button("Option 2", action: {doSomething() })
} label: {Text("Menu") }
)
}
}
private func doSomething() { }
}
struct navViewTest_Previews: PreviewProvider {
static var previews: some View {
navViewTest()
}
}
答案 1 :(得分:0)
我找到了“解决方案”。有点hacky,但到目前为止它有效。我只是将菜单包裹在一个按钮中:
Button(action: {/*do something*/}, label: {
Menu {
Button("Option 1", action: {print("1") })
Button("Option 2", action: {print("2") })
} label: {Text("Menu") }
})