I have a pointer to a view. How do I access its viewcontroller? "[self superview]" is another view, but not the viewcontroller, right?
Yes, the superview is the view, that contains yours. Your view shouldn't know which exactly is its view controller, because that will break the MVC principles.
The controller, on the other hand, knows which view it's responsible for (self.view = myView
), and usually, this view delegates methods/events for handling to the controller.
Typically, instead of pointer to your view, you should have pointer to your controller, which in turn can either execute some controlling logic, or pass something to its view.
I think you can propagate the tap to the view controller and let it handle it. This is more acceptable approach. As for accessing a view controller from its view, you should maintain a reference to a view controller, since there is no another way. See this thread, it might help: Accessing view controller from a view