无法从视图中移除Admob横幅(iOS)

时间:2014-07-05 00:41:52

标签: ios delegates admob subview banner

我已将Admob实施到我的应用中,但我注意到如果Admob视图未收到广告,我无法将其从超级视图中删除。如果已加载广告,即使设备未连接到互联网,也只会加载该广告。这是我的代码:

self.admobBannerView = [[GADBannerView alloc] init];
self.admobBannerView.frame = CGRectMake(0.0,self.view.frame.size.height-50,
                                                  GAD_SIZE_320x50.width,
                                                  GAD_SIZE_320x50.height);

self.admobBannerView.adUnitID = @"...";
self.admobBannerView.rootViewController = self;
self.admobBannerView.delegate = self;
[self.view addSubview:self.admobBannerView];
[self.admobBannerView loadRequest:[GADRequest request]];

然后是Admob代表

- (void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error {
   [self.admobBannerView removeFromSuperview];
}

尽管调用[self.admobBannerView removeFromSuperview];横幅保持原样。我不明白为什么会这样。任何帮助表示赞赏。 感谢

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并调试了带有Xcode的视图层次结构,只是发现存在多个GADBannerViews。修复了在添加广告视图之前检查广告视图是否已经存在的代码。

对于您而言,您应该将广告视图的创建包装在以下位置:

if (self.admobBannerView != nil)
{
  // create ad
}