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
即可。但是您没有任何访问被禁止的代表的权限。
答案 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
希望这有帮助