커스터마이징한 RootView와 RootViewController를 상속받아 사용하는데, 여기서 나는 해당 뷰에 대한 터치 이벤트를 항상 추가해주기 위해서 view에 tapGesture를 설정했다. 이를 상속받은 하위 Custom View와 ViewController에서 tapGesture에 대한 이벤트를 어떻게 처리할지만 정하면 되기 때문에 편리하다. 문제는 tapGesture에 cancelsTouchesInView라는 프로퍼티가 존재한다.
기본 값은 true이고, 제스처가 인식되면 보류되었던 다른 터치 이벤트들은 전달되지 않고 touchesCancelled 메서드로 메시지가 전달된다고 한다.
즉 설정한 tapGesture의 제스처만 인식되고 다른 제스처는 가볍게 무시해버리는다는 뜻이다. 그래서 ItemSelected에 대한 인식도 전달되지 않고 취소되고 있었다.
해결
cancelsTouchesInView를 false로 바꾸어 다른 제스처에 대한 이벤트를 수신할 수 있도록 변경해주었다.