티스토리 뷰
문제
- 기본적으로 TableView와 CollectionView는 List 하나로 퉁쳐지는 듯함.
- push 형식으로 뷰를 전환하려면
NavigationLink
를 통해서 움직여야함. - NavigationLink로 묶여진 뷰 안에 버튼 이벤트를 독립적으로 분리시키고 싶음.
시도
- hitTest나 ZStack 등 다양하게 시도해봄
해결
- NavigationLink의 UI를 disabled시키고 버튼(또는 이미지, 뷰 등) 이벤트를 통해 간접적으로 NavigationLink를 호출
VStack {
Button("독립적인 이벤트 실행") {
// 어떤 이벤트
}.sheet(isPresented: $firstViewPresented) // 또는 first뷰를 sheet 형식으로 띄움
Image(systemName: "circle.fill")
.onTapGesture {
selection = "이미지를 눌렀다고 한다"
}
NavigationLink(destination: PushedView(), tag: "이미지를 눌렀다고 한다", selection: $selection) {}
.disabled(true) // <-- 이게 중요. UI 동작을 막아야함
.opacity(0) // <-- List 느낌을 감추고 싶다면 NavigationLink 자체를 감춰버린다.
}
이런 식으로 구성하면 Image의 onTapGesture를 통해 selection이 설정되고, 그에 따라 NavigationLink가 실행된다.
어찌저찌 해결하긴 했지만 정말 이 방법밖에 없나.. 싶음.