iAd:ADBannerViewDelegate方法仅在viewDidLoad()之后调用一次

时间:2010-09-14 21:22:33

标签: iphone objective-c cocoa-touch uiviewcontroller iad

我有以下ADBannerViewDelegate实现:

#pragma mark ADBannerViewDelegate Methods
- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
    self.headerView.frame = CGRectMake(0, 0, 320, 94);
    [self.tableView setTableHeaderView:headerView];
    adBannerView.hidden = FALSE;
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    headerView.frame = CGRectMake(0, 0, 320, 50);
    [self.tableView setTableHeaderView:headerView]; //hide the ad if it doesnt fill
    adBannerView.hidden = TRUE;
}

如果广告不可用,我想缩小我的标题视图。如果有广告,我想展开广告。

当视图加载时,这很好用。但是,似乎这些委托方法在加载视图后停止调用。我可能遇到以下情况:

  1. 查看加载,但没有iAd可用,因此headerView缩小
  2. 用户转到View B
  3. 用户返回查看A
  4. 问题:视图A已加载,因此headerView缩小,但未调用ADBannerViewDelegate方法,因此我无法检查广告是否可用
  5. 即使在最初加载视图后,如何确保调用这些委托方法?

1 个答案:

答案 0 :(得分:0)

调用委托方法。 Apple有时候不会投放广告,所以你有机会处理它。