0

我添加了ViewController到應用程序的廣告橫幅支持。該應用程序基於UINavigationController,因此我將ViewController作爲子視圖添加到UINavigationController中。現在,廣告橫幅區域無法識別在Safari中何時觸摸廣告。我試圖讓ViewController成爲FirstFoundResponder,但這不起作用。有沒有人有任何想法如何解決?觸摸響應事件ios4

回答

0

你說你添加它作爲一個子視圖,但我希望你的意思是你

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

您的視圖控制器推它,因爲它是一個UIResponder可以對事件做出迴應。 UIView,因此大多數可視化控件,如UIButton,UISlider等也從UIResponder繼承 - 但它們實現了基於用戶交互的特定操作。

如果你真的想在UIViewController中攔截事件,你需要處理touchesBegan/Moved/Ended事件。更有可能你在視圖控制器中至少有一個UIWebView或UIImageView,如果它顯示你想要點擊的東西。

如果一個UIWebView你需要實現

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

會讓你知道被打開什麼鏈接UIWebViewDelegate。

如果在看到任何觸摸事件之前,您還需要設置屬性userInteractionEnabled

如果您正在處理iAd的AdBannerView類,它也從UIView繼承,所以對UIImageView的註釋也適用。但是,ADBannerViewDelegate是內置交互支持的要求 - 就像UIWebViewDelegate一樣,您必須實現許可/通知功能,

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave