1

My iAd is white. It looks like bannerViewDidLoadAd is run when the iAd is not fully loaded. It happens only when I show my ViewController first time (application starts). When I go to another controller and return, iAd is loaded properly. Do you have any idea why?

- (void)bannerViewDidLoadAd:(ADBannerView *)banner {
    _bannerView.hidden = NO;
    [self.view setNeedsLayout]; 
}

- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {
    _bannerView.hidden = YES;
    [self.view setNeedsLayout]; 
}

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    if (!_bannerView) {
        _bannerView = [[ADBannerView alloc] initWithAdType:ADAdTypeBanner];
        _bannerView.delegate = self;
        _bannerView.hidden = YES;
            CGRect bannerFrame = _bannerView.frame;
        bannerFrame.origin.y = self.view.bounds.size.height - _bannerView.bounds.size.height;
           _bannerView.frame = bannerFrame;
        [self.view addSubview:_bannerView];
    } 
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    _bannerView.delegate = nil;
    [_bannerView removeFromSuperview];
    _bannerView = nil; 
}
Tomasz
  • 1,406
  • 1
  • 18
  • 28
  • 1
    Try moving your code in your `viewWillAppear` to your `viewDidAppear`. Are you creating the `ADBannerView` in Interface Builder? You probably want a [Shared Banner](http://stackoverflow.com/a/28639200/2108547) rather than creating a new `ADBannerView` each time a view appears. – Daniel Storm Feb 23 '16 at 20:15

0 Answers0