2015-08-25 3 views
1

У меня есть баннер iAd, расположенный в нижней части моего приложения. Баннер отлично отображает тестовые устройства, и методы делегатов выглядят соответствующим образом.iAd баннер не загружается при нажатии

Моя проблема. Когда я нажимаю значок «« Ты подключен к iAd », ничего не загружается. Обычно, я ожидаю увидеть еще один всплывающий экран iAd view. Я вижу, что баннер темнеет, когда я нажимаю его, а затем он возвращается в нормальное состояние, когда я удаляю палец.

bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) is fire и willLeave is == false.

class ViewController: UIViewController, UIGestureRecognizerDelegate, ADBannerViewDelegate, GADBannerViewDelegate { 
var bannerView: ADBannerView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.bannerView = ADBannerView() 
    self.bannerView.frame = CGRectMake(0, view.frame.height-50, view.frame.width, 50) 
    self.bannerView.delegate = self 
    self.view.addSubview(bannerView) 
    } 
} 

ответ

2

добавить это - ADBannerViewDelegate

создать переменную - var adBanner = ADBannerView()

В viewDidLoad()

 adBanner = iADManager.sharedInstance 
     adBanner.delegate = self 
     if DeviceType.IS_IPAD { 
      adBanner.frame = CGRectMake(0, 20, self.view.frame.width, 65); 
     } 
     else { 
      adBanner.frame = CGRectMake(0, 20, self.view.frame.width, 50); 
     } 

методы делегата [если принес успешно объявление, то это добавит подвиды в противном случае удалить из вид]

func bannerViewDidLoadAd(banner: ADBannerView!) { 
     self.view.addSubview(banner) 
    } 

    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
     banner.removeFromSuperview() 
    } 

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool { 
    return true 
} 

Ниже приведена моя доляInstance class. Это будет более полезно для управления памятью и загрузки объявлений.

class iADManager{ 

    class var sharedInstance: ADBannerView { 
     struct Static { 
      static var onceToken: dispatch_once_t = 0 
      static var instance: ADBannerView? = nil 
     } 
     dispatch_once(&Static.onceToken) { 
      Static.instance = ADBannerView(adType: ADAdType.Banner) 
     } 
     return Static.instance! 
    } 
} 
+0

Привет @Bob это полезно для вас? или любые запросы? –

+0

Не повезло, такой же результат. bannerViewDidLoadAd запускается, но полноэкранный AD никогда не отображается. В этом случае тестовое объявление iAd. Я пишу на консоль, поэтому я знаю, что методы вызываются, а кран распознается. – Bob

+0

plz double проверьте, что вы еще не добавили uiview на экране, который скрывает весь экран iad.? Кстати, при разговоре с баннером это поведение по умолчанию, в котором присутствует полный экран iad. и после закрытия этого есть нормальный контроллер представления и баннер существует. –

1

Проблема в том, что я реализовал ...

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {NSLog("Banner Leaving... \(willLeave)") 
    return willLeave 
} 

willLeave был установлен в false, так что я либо должен был вернуться true или не реализовать метод. Я решил просто вернуться true

+0

ОХК @Bob, спасибо, но вам действительно нужен метод выше? то есть return willLeave –

+0

Мне действительно не нужен метод, поэтому я решил удалить его. Спасибо за вашу помощь. Я буду использовать ваш класс iAdManger в будущем – Bob

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