bannerViewDidLoadAd 未被调用

bannerViewDidLoadAd is not called

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,仅此而已。但是您无权访问已创建的 banned 代表。

您似乎将 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

希望对您有所帮助