为什么赢了';当在Swift中点击iAd时,我的游戏不会暂停吗?

为什么赢了';当在Swift中点击iAd时,我的游戏不会暂停吗?,swift,iad,Swift,Iad,我做错了什么?我试图让游戏暂停时,广告被点击,但它仍然是在后台工作。如何让它暂停?我尝试了其他方法来暂停场景,但对我来说不起作用 func didLoadAd(banner: ADBannerView) { adBannerView.hidden = false } func bannerViewWillLoadAd(banner: ADBannerView!) { println("Ad about to load")

我做错了什么?我试图让游戏暂停时,广告被点击,但它仍然是在后台工作。如何让它暂停?我尝试了其他方法来暂停场景,但对我来说不起作用

    func didLoadAd(banner: ADBannerView) {
        adBannerView.hidden = false
    }


    func bannerViewWillLoadAd(banner: ADBannerView!) {


        println("Ad about to load")

    }

    func bannerViewDidLoadAd(banner: ADBannerView!) {

        adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height - view.bounds.size.height + adBannerView.frame.size.height / 2)

        adBannerView.hidden = false
        println("Displaying the Ad")

    }

    func bannerViewActionDidFinish(banner: ADBannerView!) {
        /* un-pause when ad is closed */
        if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
            let skView = self.view as SKView
            skView.paused = false
            println("Close the Ad")
        }

    }

    func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
       if  let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
            let skView = self.view as SKView
            skView.paused = true
            println("Leave the application to the Ad")
        //pause game here
        }

        return true
    }

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

        //move off bounds when add didn't load

        adBannerView.center = CGPoint(x: adBannerView.center.x, y: view.bounds.size.height + view.bounds.size.height)
        adBannerView.hidden = true
        println("Ad is not available")

    }
//iAd-----------------------------------------------------------------------------------------------------

我认为你的问题在于:

let skView = self.view as SKView
skView.paused = true
我想你应该检查一下skView是否是你的游戏视图。此时self.view可能是广告视图

要修复它,请找到您的视图,而不是使用self

//at top of class
var window:UIWindow?

// inside my method/function
if let viewControllers = window?.rootViewController?.childViewControllers {
    for viewController in viewControllers {
        if viewController.isKindOfClass(MyViewControllerClass) {
            println("Found it!!!")
            viewController.paused = true
            }
        }
    }

广告是否如你所期望的那样显示和隐藏?是的,当广告被点击时,它只是没有暂停游戏。我不知道这意味着什么。我对swift和编码是新手。如何缓存视图并重新使用它?将其替换为显示如何查找视图的代码。我在viewController.paused=true行中遇到错误。它说任何对象都没有名为暂停的成员。您是否更改了MyViewControllerClass以匹配您的游戏视图?您知道为什么会发生这种情况吗?谢谢