вы говорите, что добавили его как подпредставление, но я надеюсь, что вы имеете в виду, что вы добавили его с
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
Ваш контроллер представления может отвечать на события, потому что это UIResponder. UIView и, следовательно, большинство визуальных элементов управления, таких как UIButton, UISlider и т. Д., Также наследуются от UIResponder - но они реализуют определенные действия, основанные на взаимодействии с пользователем.
Если вы действительно хотите перехватывать события в UIViewController, вам нужно обработать события touchesBegan / Moved / Ended. Скорее всего, у вас есть хотя бы UIWebView или UIImageView в контроллере представления, если он отображает что-то, на что вы хотите нажать.
Если для UIWebView вам потребуется UIWebViewDelegate, реализующий
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
сообщит вам, какие ссылки открываются.
Если для UIImageView вам также потребуется установить свойство userInteractionEnabled
, прежде чем вы увидите какие-либо сенсорные события.
Если вы имеете дело с классом AdBannerView в iAd, который также наследует от UIView, поэтому применяются комментарии для UIImageView. ОДНАКО ADBannerViewDelegate является требованием для встроенной поддержки взаимодействия - так же, как UIWebViewDelegate, вы должны реализовать функцию разрешения / уведомления,
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave