Xcode6 / Swift - 如何在多个视图控制器中实现iAdBannerView?

时间:2014-10-16 11:59:12

标签: view swift iad controllers adbannerview

在我开始之前我知道这个问题之前已被多次询问过,但是所有这些问题都是指xcode5 / objective-C,而不是swift。我只是应用程序开发的新手,所以我无法理解目标-c并在swift中使用它。

我的第一个视图控制器上有一个adBannerView,但是如何在这个横幅上使用它并在其他两个视图控制器中使用它?我是否使用prepareForSegue功能(如果是,如何使用)?

我目前拥有的adBannerView代码(来自here

//...
import iAd

class ViewController: UIViewController, ADBannerViewDelegate {

//link adBanner
@IBOutlet var adBannerView: ADBannerView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    self.canDisplayBannerAds = true
    self.adBannerView.delegate = self
    self.adBannerView.hidden = true
}

func bannerViewWillLoadAd(banner: ADBannerView!) {
    NSLog("bannerViewWillLoadAd")
}

func bannerViewDidLoadAd(banner: ADBannerView!) {
    NSLog("bannerViewDidLoadAd")
    self.adBannerView.hidden = false
}

func bannerViewActionDidFinish(banner: ADBannerView!) {
    NSLog("bannerViewDidLoadAd")
    //optional resume paused game code

}

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
    NSLog("bannerViewActionShouldBegin")
    //optional pause game code

    return true
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    NSLog("bannerView")
}

//...

谢谢:)

1 个答案:

答案 0 :(得分:1)

当我遇到这个问题时,我的解决方案是创建一个ParentViewController,其他视图控制器继承他。在父视图控制器中,我为包含iAdView的视图创建一个插座,并在每个视图控制器的.xib文件中将iAdView容器视图链接到创建的插座。之后,我创建了一个具有所有iAdView功能和一个属性iAdView的单例。在父级的viewDidAppear中,我向iAdView请求单例并将其添加为iAd视图容器的子视图。在视图控制器中以这种方式执行此操作,您将不会看到iAdView的任何代码,因为所有代码都将位于ParentViewController和单例中(让我们称之为iAdManager)。希望它有所帮助。