2010-09-14 8 views
0

I ont les implémentations ADBannerViewDelegate suivantes:iAd: méthodes de ADBannerViewDelegate appelée une seule fois après 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; 
} 

Si une annonce est disponible, je veux réduire mon headerview. S'il y a une publicité, je veux l'agrandir.

Cela fonctionne correctement lorsque la vue est chargée. Cependant, il semble que ces méthodes déléguées cessent d'être appelées après le chargement de la vue. Je peux éventuellement courir dans le scénario suivant:

  1. Voir A charge, mais pas iAd est disponible si headerView est ratatinée
  2. utilisateur va View B
  3. utilisateur revient pour afficher une
  4. PROBLÈME: voir a a déjà chargé, de sorte que le headerView est ratatinée, mais les méthodes de ADBannerViewDelegate ne sont pas appelés, donc je ne peux pas vérifier si une annonce est disponible

Comment puis-je assurer que ces délé Les méthodes sont-elles appelées même après le chargement initial de la vue?

Répondre

0

Les méthodes Delegate sont appelées. Apple ne diffuse parfois aucune publicité, vous avez donc la possibilité de le gérer.