У меня две ссылки NavigationLink в ячейке моего списка
Я хочу перейти в пункт назначения1, когда я коснусь один раз, и перейти в пункт назначения2, когда я коснусь дважды. Поэтому я добавил два жеста касания для управления навигацией.
Но когда я нажимаю, возникают два вопроса:
- 1 Блок жестов касания не вызывается.
- 2 Две навигационные ссылки будут активированы автоматически, даже если они находятся за TextView. Реальный эффект таков: нажмите на ячейку - ›перейти к пункту назначения1-› вернуться домой - ›перейти к пункту назначения2 -› вернуться домой
Вот мой код:
struct MultiNavLink: View {
@State var mb_isActive1 = false;
@State var mb_isActive2 = false;
var body: some View {
return
NavigationView {
List {
ZStack {
NavigationLink("", destination: Text("Destination1"), isActive: $mb_isActive1)
NavigationLink("", destination: Text("Destination2"), isActive: $mb_isActive2)
Text("Single tap::go to destination1\nDouble tap,go to destination2")
}
.onTapGesture(count: 2, perform: {()->Void in
NSLog("Double tap::to destination2")
self.mb_isActive2 = true
}).onTapGesture(count: 1, perform: {()->Void in
NSLog("Single tap::to destination1")
self.mb_isActive1 = true
})
}.navigationBarTitle("MultiNavLink",displayMode: .inline)
}
}
}
Я попытался удалить элемент List, и все идет так, как я ожидал. Кажется, что все странно из-за элемента List.
Я нашел этот вопрос: SwiftUI - две кнопки в списке, но ситуация отличается от меня.
Жду вашего ответа, большое спасибо ...
ZStack
иNavigationLink
изList
и заменить наButton
, затем примените модификаторы.onTapGesture
кButton
, встраивая NavLinks в кодperform
для каждого. - person andrewbuilder   schedule 20.08.2020