2012-01-22 5 views
1

У меня есть вид баннера iAd, со всеми моими контрактами вверх и вниз, и я внедрил делегата ADBannerView. Баннер должен исчезнуть без подключения к Интернету, но он просто показывает белый ящик, в котором должно быть содержимое. Я знаю, что у меня есть весь код, я видел миллион учебников по этому вопросу. Поэтому я провел несколько тестов и обнаружил, что представление баннера даже не вызывает два метода для делегата! Вот код.iAd Banner View Делегат не вызывает методы

В файле .h:

#import <iAd/iAd.h> 

@interface DetailViewController : ADBannerViewDelegate> 
{ 
    ADBannerView *aBanner; 
    BOOL bannerIsVisible; 
} 

@property (nonatomic, retain) IBOutlet ADBannerView *aBanner; 
@property (nonatomic, assign) BOOL bannerIsVisible; 

@end 

в файле .m:

@implementation DetailViewController 

@synthesize aBanner,bannerIsVisible; 

//Show banner if can load ad. 
-(void)bannerViewDidLoadAd:(ADBannerView *)banner 
     { 
     if (!self.bannerIsVisible) { 
      [UIView beginAnimations:@"animateAdBannerOn" context:NULL]; banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height); 
      [UIView commitAnimations]; self.bannerIsVisible = YES; } 
     } 

    //Hide banner if can't load ad. 
    -(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
    { 
     if (self.bannerIsVisible) { 
      [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height);   
      [UIView commitAnimations]; self.bannerIsVisible = NO; } 
    } 
+0

ли методы делегата дозвонились, когда есть рабочее соединение? –

+0

Вызывается, когда есть соединение, когда нет –

+0

Правильно, я понимаю, что означают методы. Я спрашиваю, работает ли ваш код, когда есть соединение? Они могут вообще не работать, независимо от подключения. –

ответ

3

Вы должны установить баннер делегатом владельца файлов. У меня была такая же проблема, и после того, как я ударил головой о стену, все было так просто.

+0

вы можете показать код? – 4GetFullOf

+0

Я установил делегировать файловое хранилище, но bannerViewDidLoadAd не вызывает. – seggy

0

Используйте код, приведенный ниже, чтобы объявить свой собственный делегат

-(void)viewDidLoad { 
    aBanner.delegate = self; 
} 
Смежные вопросы