0

Я добавил ViewController в приложение для поддержки рекламного баннера. Приложение было основано на UINavigationController, поэтому я добавил ViewController в качестве подчиненного элемента UINavigationController. Теперь область рекламного баннера не распознает, когда она коснулась, чтобы открыть объявление в сафари. Я попытался сделать ViewController startFirstResponder, но это не работает. У кого-нибудь есть мысли о том, как исправить?touch response event ios4

ответ

0

вы говорите, что вы добавили его как подвид, но я надеюсь, что вы имеете в виду вы толкнул его с

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated

Ваше мнение контроллер может реагировать на события, потому что это UIResponder. UIView, и поэтому большинство визуальных элементов управления, таких как UIButton, UISlider и т. Д., Наследуют и от UIResponder, но они реализуют конкретные действия, основанные на взаимодействии с пользователем.

Если вы действительно хотите перехватить события в UIViewController, вам нужно будет обрабатывать события touchBegan/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