2016-01-09 3 views
1

Я добавляю баннер iAd, и он отображается как пробел, когда я выключаю Wi-Fi. Я нашел аналогичные проблемы в StackOverflow, с инструкциями по добавлению делегата, который я уже сделал. Вот мой код:iAd не работает, хотя я добавил делегата

func createIAd() { 

    bannerView = ADBannerView(adType: .Banner) 
    bannerView.translatesAutoresizingMaskIntoConstraints = false 
    bannerView.delegate = self 
    bannerView.hidden = true 
    view.addSubview(bannerView) 

    let viewsDictionary = ["bannerView": bannerView] 
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[bannerView]|", options: [], metrics: nil, views: viewsDictionary)) 
    view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[bannerView]|", options: [], metrics: nil, views: viewsDictionary)) 


} 

func bannerViewDidLoadAd(banner: ADBannerView!) { 

} 

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
    dontShowAd = true 
    print("NOAD!!!!") 
    hideIAd() 
} 



func hideIAd() { 
    bannerView.hidden = true 

} 

func showIAd() { 
    if dontShowAd == false { 
    bannerView.hidden = false 
    } 
} 
+0

Когда и где вы вызываете 'func showIAd()'? –

ответ

0

Посмотрите на свой код, он говорит, что если ADBannerView получает сообщение об ошибке не показывать объявления.

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
     dontShowAd = true 
     print("NOAD!!!!") 
     hideIAd() 
    } 

Выключение беспроводной считать ошибку, потому что вы не можете смотреть или скачать надстройку без Wi-Fi, подумайте действительно ли вы хотите, чтобы пользователь, чтобы иметь объявления отображаются на их приложения, когда они не имеют интернет-соединение, которое не принесет вам никакой прибыли, потому что для работы требуется wifi. Вот почему он показывает вам пустой квадрат. Но я не буду подвергать сомнению то, что вы пытаетесь выполнить, поэтому, если вы хотите отображать объявление, даже если пользователь не имеет Wi-Fi, просто измените значение вашего логического значения на false.

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
     dontShowAd = false 
     print("NOAD!!!!") 
     hideIAd() 
    } 

Но если вы хотите скрыть баннер, когда нет Интернета, все, что вам нужно сделать, это добавить эти 2 функции. Предполагая, что соединение между Баннером и ViewController называется Banner. Вы можете избавиться от остальной части кода только

func bannerViewDidLoadAd(banner: ADBannerView!) { 

self.Banner?hidden = false 
} 

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
    self.Banner?hidden true 
} 
} 
+0

Дело в том, что на самом деле я не хочу, чтобы объявление появлялось вообще, когда нет Интернета. Вот почему я добавил hideiad(). Обычно, если нет Wi-Fi, не должно быть никакого пробела вообще - оно должно быть полностью прозрачным. –

+0

ОК, я обновлю свой код – Katz

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