如何使用AppDelegate在视图之间共享iAd横幅

时间:2015-03-06 17:48:05

标签: ios swift xcode6 iad appdelegate

我希望在我的应用中实施iAd。到目前为止,我已经设法让他们使用下面的每个视图正确显示/解雇。

App Delegate:

import UIKit

import iAd
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    var adBannerView = ADBannerView()

查看控制器1:

import UIKit
import iAd

class HomeScreenViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, ADBannerViewDelegate {

let appDelegate = UIApplication.sharedApplication().delegate as AppDelegate //Creates reference to the AppDelegate

    override func viewDidLoad() {
        super.viewDidLoad()
        loadAds()        
    }
    func loadAds(){
        self.appDelegate.adBannerView.removeFromSuperview()
        self.appDelegate.adBannerView.delegate = nil
        self.appDelegate.adBannerView = ADBannerView(frame: CGRect.zeroRect)
        self.appDelegate.adBannerView.center = CGPoint(x: view.bounds.size.width / 2, y: view.bounds.size.height - self.appDelegate.adBannerView.frame.size.height / 2)
        self.appDelegate.adBannerView.delegate = self
        self.appDelegate.adBannerView.hidden = true
        view.addSubview(self.appDelegate.adBannerView)
    }
    func bannerViewDidLoadAd(banner: ADBannerView!) {
        println("bannerViewDidLoadAd")
        self.appDelegate.adBannerView.hidden = false
    }
    func bannerViewActionDidFinish(banner: ADBannerView!) {
        println("bannerViewActionDidFinish")
    }
    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
        println("didFailToReceiveAdWithError")
        self.appDelegate.adBannerView.hidden = true
    }

我的目标是让多个视图中显示相同的广告,用户可以切换。但是,实际上,当你从一个视图转到另一个视图时,广告会停止加载并且必须重新开始。是否有更简单的方法将此adBannerView从一个VC传递到另一个VC?

任何帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:0)

在行

self.appDelegate.adBannerView = ADBannerView(frame: CGRect.zeroRect)

您正在创建一个新的ADBannerView实例并丢弃旧实例。所以你不是共享视图对象,只是共享变量。 删除此行。完成此操作后,

self.appDelegate.adBannerView.delegate = nil

没有任何意义,因为您稍后将其设置为self。也删除它。

另见https://developer.apple.com/library/ios/technotes/tn2286/_index.html