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



在我开始之前,我知道这个问题以前已经被问过很多次了,但他们都提到了xcode5/objective-C,而不是swift。我只是应用程序开发的新手,所以我还不能理解objective-c并在swift中使用它。

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

我的adBannerView代码我目前有(从这里)

//...
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")
}
//...

感谢:)

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

最新更新