티스토리 뷰

swiftui-128x128_2x

문제

  • 기본적으로 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가 실행된다.
어찌저찌 해결하긴 했지만 정말 이 방법밖에 없나.. 싶음.

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday