Я хотел бы иметь разделенный просмотр с элементами в подробном представлении, которые можно было бы нажимать дважды. Я создал следующий пример, чтобы продемонстрировать свою проблему:
struct ContentView: View {
var body: some View {
NavigationView {
List(["Hello", "World"]) { str in
NavigationLink(destination: DetailView(title: str)) {
Text(str)
}
}
}.frame(minWidth: 300, minHeight: 300)
}
}
struct DetailView: View {
let title: String
@State var isShowingAlert = false
var body: some View {
VStack {
Text(title)
List(["This", "is", "SwiftUI", "!"]) { str in
Text(str).onTapGesture(count: 2) {
self.isShowingAlert = true
}.alert(isPresented: self.$isShowingAlert) { () -> Alert in
Alert(title: Text(str), message: Text("This is a hello message"), dismissButton: Alert.Button.default(Text("Ok")))
}
}
}.frame(minWidth: 200)
}
}
Итак, часть splitview работает должным образом. Но когда я дважды нажимаю на элемент строки, он всегда показывает мне предупреждение дважды с содержимым ниже. Так что не имеет значения, какой элемент я нажимаю. Он всегда показывает мне первый и второй элементы в предупреждении. После отклонения первого предупреждения с заголовком «Это» отображается второе с заголовком «is»:
Первое предупреждение:
The second alert:
Второе предупреждение отображается после закрытия первого предупреждения
Почему показывает два предупреждения по одному двойному нажатию? И почему всегда первые два элемента, даже если я выбираю последний элемент в списке? Есть предложения или решения? Большое спасибо :)