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

Posted

技术标签:

【中文标题】Xcode6/Swift - 如何在多个视图控制器中实现 iAdBannerView?【英文标题】:Xcode6/Swift - How to implement an iAdBannerView in multiple view controllers? 【发布时间】:2014-10-16 11:59:12 【问题描述】:

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

我的第一个视图控制器上有一个 adBannerView,但是我如何获取这个横幅并在我的其他 2 个视图控制器中使用它?我是否使用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】:

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

【讨论】:

以上是关于Xcode6/Swift - 如何在多个视图控制器中实现 iAdBannerView?的主要内容,如果未能解决你的问题,请参考以下文章

今日视图扩展:消除 Xcode 6 / Swift 中的领先差距

(Xcode 6 beta / Swift) performSegueWithIdentifier 在 segue 之前有延迟

如何将 Xcode 6.1.1 Swift 代码转换为 Xcode 6.4 Swift 代码?

XCode6/Swift:发送到实例的无法识别的选择器

如何在视图控制器的多个视图中添加多个渐变颜色

如何在 iPad 的视图控制器中创建多个表格视图?