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 之前有延迟