2010-09-14 81 views
0

我有以下ADBannerViewDelegate实现:的iAd:ADBannerViewDelegate方法只有viewDidLoad中后调用一次()

#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; 
} 

如果广告是不可用的,我想我的萎缩headerview。如果有广告,我想扩展它。

工作正常,视图加载时。但是,看起来这些委托方法在视图加载后不会被调用。我可能遇到以下情形:

  1. 观的负荷,但没有iAd的可用,因此headerView是缩小
  2. 用户进入视图B
  3. 用户回来查看一个
  4. 问题:查看A已经加载,所以headerView收缩的状态,但ADBannerViewDelegate方法不叫,所以我不能检查,看看广告是否可用

我怎样才能确保这些delega即使在最初加载视图后,方法会被调用吗?

回答

0

委托方法确实被调用。苹果公司有时不提供广告,所以你有机会处理它。