2012-04-12 31 views
1

我試圖在我的免費版本應用程序上放置iad橫幅,當按下時橫幅運行平穩並且視圖確認測試廣告正確運行。但是當我關閉那個視圖時,我的應用程序已經存貨,我可以按下按鈕,但他們沒有執行它們的操作。這就是我所做的,這就是爲什麼我認爲bannerViewActionDidFinish:沒有被調用。在bannerViewActionShouldBegin中:我設置了buttonTest setEnabled = NO,然後在bannerViewActionDidFinish:中將它設置爲buttonTest setEnabled = YES。結果是該按鈕被禁用,並且在橫幅測試視圖關閉時未啓用。IAd bannerViewActionDidFinish:在測試運行視圖確認關閉後未執行

.h文件中

#import <iAd/iAd.h> 

ADBannerView *adView; 
BOOL bannerIsVisible; 

@property (nonatomic, assign)BOOL bannerIsVisible; 

在這種情況下.m文件

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

回答

0

,您可以檢查的bannerViewActionShouldBegin:willLeaveApplication:

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

    [buttonTest setEnabled:!willLeave]; 

    return YES; 
} 

這樣的willLeave:說法,buttonTest保持如果啓用您不要離開iAd點擊的應用程序。