There's a good answer to a similar question at iOS - UITapGestureRecognizer - Selector with Arguments, but if you want to pass data that you don't want to attach to the view, I recommend creating a second function that has access to the data you need. For example:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(passDataToProcessTap)];
- (void)passDataToProcessTap {
[self processTapWithArgument:self.infoToPass];
// Another option is to use a static variable,
// Or if it's not dynamic data, you can just hard code it
}
- (void) processTapWithArgument:(id)argument {
//do something
}