我想在屏幕底部显示iAd横幅视图。我还想在第一个bannerViewDidLoadAd
和bannerView:didFailToReceiveAdWithError
方法调用之后隐藏它,并在任何进一步的bannerViewDidLoadAd
方法调用之后恢复它。实现这种行为的正确方法是什么?
这是我尝试过的:
-
通过XCode中的接口构建器将iAd Banner视图添加到视图控制器中,并选择视图控制器作为该视图的委托
-
添加以下功能到视图控制器的实现——https://gist.github.com/ellneal/1082499
-
将这些方法的调用添加到
bannerViewDidLoadAd
和bannerView:didFailToReceiveAdWithError
中:- (void)bannerViewDidLoadAd:(ADBannerView *)banner { [self showBannerView:banner animated:YES]; } - (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error { [self hideBannerView:banner animated:YES]; }
在这种情况下,我看到一个空白的屏幕,而不是广告之前的bannerViewDidLoadAd方法被调用,iAd横幅视图不会再次出现,当连接再次建立(我认为这是因为removeFromSuperview
方法调用)。我该怎么修理它?也许有一种更正确的方式来实现这样的行为?
如果可能的话,你应该考虑在视图控制器上使用setCanDisplayAds:
。参考Apple的文档
导入iAd并在根视图控制器上设置该属性,或者在你希望在底部显示广告的内容视图控制器上设置该属性。