Я пытаюсь открыть новое представление по нажатию на значок речевого пузыря. В настоящее время новое представление запускается правильно, но я могу щелкнуть в любом месте тела моего 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()
}
}
}
PostsView
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
.