【问题标题】:iAd: ADBannerViewDelegate methods only called once after viewDidLoad()iAd:ADBannerViewDelegate 方法仅在 viewDidLoad() 之后调用一次
【发布时间】:2010-09-14 21:22:33
【问题描述】:

我有以下 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. 视图 A 加载,但没有可用的 iAd,因此 headerView 被缩小
  2. 用户转到视图 B
  3. 用户返回视图 A
  4. 问题:视图 A 已加载,因此 headerView 已缩小,但未调用 ADBannerViewDelegate 方法,因此无法检查是否有广告

如何确保在最初加载视图之后调用这些委托方法?

【问题讨论】:

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


    【解决方案1】:

    委托方法确实会被调用。 Apple 只是有时不提供广告,所以你有机会处理它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多