2015-01-12 4 views
0

Когда я запускаю свое приложение на iOS 7, все iAds работают как шарм в каждом контроллере представлений. Но когда я запускаю свое приложение на iOS 8 и перемещаюсь по нему, когда я возвращаюсь к главному виду или, возможно, в другом представлении перед зарядом, iAds показывает пустое. Я пробовал все типы кода и со всеми проблемами.Проблемы с iAds и iOS 8

- (void)viewDidAppear:(BOOL)animated{ 
[super viewDidAppear:animated]; 
if (!_adBanner) { 
    _adBanner = [[ADBannerView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, 320, 50)]; 
    [_adBanner setBackgroundColor:[UIColor clearColor]]; 
    [self.view addSubview:_adBanner]; 
} 

_adBanner.delegate = self;} 

-(void)viewDidDisappear:(BOOL)animated{ 
[super viewDidDisappear:animated]; 
_adBanner.delegate=nil; 
} 

// Делегаты

-(void)bannerViewDidLoadAd:(ADBannerView *)banner{ 
if (!_bannerIsVisible /*&& _original*/) { 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1]; 
[_adBanner setAlpha:1]; 
banner.frame = CGRectOffset(banner.frame, 0, -banner.frame.size.height); 
[UIView commitAnimations]; 
    _bannerIsVisible = YES; 
} 
} 
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error 
{ 
if (_bannerIsVisible) { 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1]; 
[_adBanner setAlpha:0]; 
banner.frame = CGRectOffset(banner.frame, 0, banner.frame.size.height); 
[UIView commitAnimations]; 
_bannerIsVisible = NO; 
} 
NSLog(@"%@",error); 
} 

И в консоли получаю эту ошибку: "Error Domain = ADErrorDomain Code = 7" Операция не может быть завершена. Объявление было выгружено из этого баннера «UserInfo = 0x7a698c20 {ADInternalErrorCode = 7, ADInternalErrorDomain = ADErrorDomain, NSLocalizedFailureReason = Ad выгружали из этого баннера}»

+0

Попробуйте удалить _adBanner.delegate = nil; из viewDidDisappear и поместите код инициализации _adBanner в viewDidLoad! – weso

+0

У меня такая же проблема. –

+0

Ошибка консоли Дополнительная информация? – weso

ответ

0

я с точно такой же проблемой, и я хочу, чтобы опубликовать ответ здесь, который Безразлично «Решите это в моем случае (поэтому, пожалуйста, примите, что ЭТО НЕ АКТУАЛЬНЫЙ ответ), но я хотел предоставить несколько деталей, которые я не могу сделать в комментарии.

У меня такая же проблема с переключением между видами в UITabBarController, и когда я возвращаюсь к первому виду, есть AdBannerView, но на самом деле не показываются объявления за 1 минуту, хотя делегат методы выполняются.

Я сначала пошел и последовал за этим руководством (https://www.youtube.com/watch?v=_0Mv44FWw0A&feature=youtu.be) о том, как настроить общие экземпляры AdBannerViews, которые могут быть или не быть тем, что вы делаете, но это может помочь; никогда не знаешь.

В моем случае это ничего не делало.

Но я реализовать viewWillDisappear:

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 
    self.adBanner.delegate = nil; 
    self.adBanner = nil; 
    [self.adBanner removeFromSuperview]; 

} 

Если я закомментировать этот код, я получаю ту же ошибку, вы обращенную в консоли, с кодом ошибки 7. Если я не комментирую, что кода, я получаю без ошибок (т. е. didFailToReceiveAdWithError никогда не запускается).

Однако проблема, с которой я столкнулся, заключается в том, что когда я возвращаюсь к просмотру с другой вкладки, viewWillAppear запускается, а затем мгновенно появляется bannerViewDidLoadAd, но это фактически не приводит к объявлению в течение 1 минуты и вместо этого у меня остался пустой белый баннер.

Кроме того, я бегу код загрузки из viewWillAppear (потому что это вызывается каждый раз, когда вы вернетесь к этому ViewController, вместо viewDidLoad.

self.adBanner = [[self appdelegate] adBanner]; 
self.adBanner.delegate = self; 
[self.adBanner setFrame:CGRectMake(0, 101, 320, 580)];  
[self.view addSubview:self.adBanner]; 

я не уверен, если это поможет Надеюсь, это так, и если да, возможно, мы сможем понять, почему моя работа не работает на iOS 8!

Смежные вопросы