bannerViewDidLoadAd未被称为

时间:2015-05-15 11:06:26

标签: swift iad

iAD委托从不打电话,虽然我在viewWillAppear中设置了它。

AppDelegate中的

var UIiAd: ADBannerView = ADBannerView()
ViewController中的

var UIiAd: ADBannerView = ADBannerView()

 func appdelegate() -> AppDelegate {
    return UIApplication.sharedApplication().delegate as! AppDelegate
}

override func viewWillAppear(animated: Bool) {
    var SH = UIScreen.mainScreen().bounds.height

    UIiAd.delegate = self
    UIiAd = self.appdelegate().UIiAd
    UIiAd.frame = CGRectMake(0, SH - 50, 0, 0)
    self.view.addSubview(UIiAd)
}

func bannerViewDidLoadAd(banner: ADBannerView!) {
    UIView.beginAnimations(nil, context: nil)
    UIView.setAnimationDuration(10)
    UIiAd.alpha = 0.5
    println("hello")
    UIView.commitAnimations()
}
有趣的是,adBanner实际上展示了测试广告。

UDP:我确实明白了什么是错的。要显示iAd,您只需设置self.canDisplayBannerAds = true即可。但是您没有任何访问被禁止的代表的权限。

1 个答案:

答案 0 :(得分:2)

您似乎将UIiAd实例化为应用代理的属性,另一个UIiAd作为viewController的属性。 然后:

UIiAd.delegate = self // The viewController's instance gets the delegate assigned
UIiAd = self.appdelegate().UIiAd // The viewController's instance changes and becomes the same as the app delegate's instance

这不是我用来处理iAd的方式,但在你的情况下,它可能足以改变两行代码的顺序:

UIiAd = self.appdelegate().UIiAd
UIiAd.delegate = self

希望这有帮助