如何在不覆盖默认点击行为的情况下将longPressAction添加到NavigationButton?

时间:2019-06-17 23:27:40

标签: swiftui

我正在尝试使用.longPressAction()函数将长按添加到NavigationButton。它只能识别长按,而忽略默认行为。

我尝试使用SimultaneousGesture,但是NavigationButton不会显示其点击手势。创建我自己的轻击手势不起作用,因为我需要能够推送到新的视图。

NavigationButton(destination: IssueDetail(issue: issue), 
onTrigger: { return self.issue.instructions != nil }) {
    IssueCardBody(issue: issue)
        .longPressAction({ print("pressed") })
}

它将打印“已按下”,但不会推送到新的视图。

1 个答案:

答案 0 :(得分:0)

作为解决方法,您可以使用以下技巧:

@State var isTapped = false

var body: some View {
    NavigationView{
        VStack {
            NavigationLink(destination:  Text("Your Detail view"), isActive: $isTapped) {
                EmptyView()
            }
            Text("Your card")
                .onTapGesture { self.isTapped.toggle() }
                .onLongPressGesture { print("pressed") }
        }
    }
 }