2012-04-12 6 views
1

Ich versuche, ein iad Banner auf meiner kostenlosen Version App zu setzen, das Banner läuft reibungslos, wenn es gedrückt wird und die Ansicht bestätigt, dass die Testanzeigen korrekt ausgeführt werden. Aber dann, als ich diese Ansicht schloss, war meine Anwendung gefüllt, ich konnte die Tasten drücken, aber sie führten ihre Aktionen nicht aus. Dies ist das, was ich tue, deshalb denke ich, dass das bannerViewActionDidFinish: nicht aufgerufen wurde. In bannerViewActionShouldBegin: setze ich die buttonTest setEnabled = NO, dann buttonTest setEnabled = YES in bannerViewActionDidFinish :. Das Ergebnis war, dass die Schaltfläche deaktiviert wurde und nicht aktiviert wurde, als die Banner-Testansicht geschlossen wurde.IdAd bannerViewActionDidFinish: nicht ausgeführt, nachdem der Test läuft, wurde die Ansichtsbestätigung geschlossen

.h-Datei

#import <iAd/iAd.h> 

ADBannerView *adView; 
BOOL bannerIsVisible; 

@property (nonatomic, assign)BOOL bannerIsVisible; 

.m-Datei

@synthesize bannerIsVisible; 

- (void)viewDidLoad 
{ 
    adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
    adView.frame = CGRectOffset(adView.frame, 0, -50); 
    adView.requiredContentSizeIdentifiers = [NSSet  setWithObject:ADBannerContentSizeIdentifierLandscape]; 
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape; 
    [self.view addSubview:adView]; 
    adView.delegate=self; 
    self.bannerIsVisible=NO;  

    [super viewDidLoad]; 
} 

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

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
    if (self.bannerIsVisible) 
    { 
     [UIView beginAnimations:@"animateAdBannerOff" context:NULL]; 
     banner.frame = CGRectOffset(banner.frame, 0, -50); 
     [UIView commitAnimations]; 
     self.bannerIsVisible = NO; 
    } 
} 

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave 
{ 
    NSLog(@"Banner view is beginning an ad action"); 

    [buttonTest setEnabled:NO]; 

    return YES; 
} 

-(void)bannerViewActionDidFinish:(ADBannerView *)banner 
{ 
    // resume everything you've stopped 

    [buttonTest setEnabled:YES]; 
} 

- (void)viewDidUnload 
{ 
    adView.delegate = nil; 
} 

Antwort

0

in diesem Fall können Sie überprüfen die willLeave: Argument von bannerViewActionShouldBegin:willLeaveApplication:

- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave 
{ 
    NSLog(@"Banner was clicked on; will%sleave application", willLeave ? " " : " not "); 

    [buttonTest setEnabled:!willLeave]; 

    return YES; 
} 

diese Weise bleibt buttonTest aktiviert, wenn Sie verlassen die Anwendung nicht für den iAd-Click-through.