NavigationLink срабатывает из любой точки обзора
Я пытаюсь настроить новый вид при щелчке значка речевого пузыря. В настоящее время новое представление запускается правильно, но я могу щелкнуть в любом месте тела моегоPostView
и NavigationLink
будет запущен. Я не могу заставить новое представление запускаться только при нажатии значка речевого пузыря.
В дополнение к этому я не могу заставить серую стрелку исчезнуть.
PostView
struct PostView: View {
var post: Post
@State var postComment: String
@State var showPlaylistsView = false
@State var action: String? = ""
@EnvironmentObject var viewHandler: ViewHandler
var body: some View {
VStack {
HStack {
Text(post.songInfo.album).font(.title)
Spacer()
Text(post.songInfo.artist)
}.padding()
URLImage(url: post.songInfo.albumArtURL)
.aspectRatio(contentMode: .fit)
NavigationLink(destination: Text(self.post.songInfo.track), tag: post.id, selection: self.$action) {
EmptyView()
}
HStack {
Spacer()
Image("comment-icon")
.onTapGesture {
self.action = self.post.id
}
Spacer()
}
HStack {
Text(post.user.userName)
Spacer()
}.padding()
HStack {
Text(post.textContent)
Spacer()
}.padding()
}
}
}
СообщенияПросмотр
struct PostsView: View {
@ObservedObject var fbVM = FirebasePosts()
@State private var action: Int? = 0
var body: some View {
NavigationView {
List {
ForEach(fbVM.visiblePosts) { post in
PostView(post: post, postComment: "")
}.listRowInsets(EdgeInsets())
}
}
}
}
Как указано выше, серая стрелка все еще присутствует, и нажатие в любом месте сообщения вызовет NavigationLink
. На изображении ниже вы можете увидеть, что весь пост выделен серым цветом. Это происходит независимо от того, где вы щелкаете вPostView
.