我在一个应用程序中添加了一个ViewController来支持广告横幅。该应用程序基于UINavigationController,因此我将ViewController作为子视图添加到UINavigationController中。现在,当在safari中点击打开广告时,广告横幅的区域无法识别。我曾尝试制作ViewController becomeFirstResponder,但这不起作用。有没有人对如何修复有什么想法?
发布于 2011-01-21 07:26:17
您说您将其添加为一个子视图,但我希望您的意思是您使用
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
视图控制器可以响应事件,因为它是一个UIResponder。UIView以及UIButton、UISlider等大多数可视化控件也继承自UIResponder --但它们根据用户交互实现特定的操作。
如果你真的想截获UIViewController中的事件,你需要处理触摸Moved/Moved/Ended事件。更有可能的是,如果视图控制器显示您想要单击的内容,则视图控制器中至少有一个UIWebView或UIImageView。
如果是UIWebView,您将需要一个UIWebViewDelegate实现
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType将让您知道正在打开哪些链接。
如果是UIImageView,您还需要设置属性userInteractionEnabled,然后才能看到任何触摸事件。
如果您正在处理iAd的AdBannerView类,那么它也继承自UIView,所以适用于UIImageView的注释。然而,与UIWebViewDelegate一样,ADBannerViewDelegate是内置交互支持所必需的,您必须实现权限/通知函数,
- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeavehttps://stackoverflow.com/questions/4753676
复制相似问题