当按下导航后退按钮时显示 Admob 插页式 iOS Swift

Saj*_*ims 1 iphone xcode ios5 ios7 swift

我有两个视图控制器 imageViewController 和 InfoViewController。我希望当用户点击 InfoViewController 中的后退按钮时显示我的广告

class imageViewController: UIViewController , GADInterstitialDelegate {
    var interstitial: GADInterstitial!
 override func viewDidLoad() {

         self.interstitial = self.createAndLoadInterstitial()
         super.viewDidLoad()
}
func createAndLoadInterstitial() -> GADInterstitial {
        let interstitial: GADInterstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910")
        interstitial.delegate = self
        let request = GADRequest()
        interstitial.loadRequest(request)
        print("req sent")
        return interstitial
    }
    func interstitialDidReceiveAd(ad: GADInterstitial!) {
        if (interstitial.isReady) {
            print("ad ready")
            interstitial.presentFromRootViewController(self)
        }}
     func interstitialDidDismissScreen(interstitial: GADInterstitial) {
    } 
Run Code Online (Sandbox Code Playgroud)

我应该如何通过单击后退按钮从 infoViewController 到 ImageViewCroller 来调用它。我也未能用全局变量解决这个问题,因为我是 iOS 新手

r_1*_*_19 5

对我来说,检测 ios backpressed 并在 backPressed 上显示 admob 插页式广告的最简单方法是使用willMoveToParentViewController或didMoveToParentViewController在我的 childViewController 中(在您的情况下)InfoViewController。

我在 appDelegate 上创建了插页式 admob 插页式实例。所以,我可以在全球范围内使用它,并且只使用一个实例/共享实例(我认为)

然后就可以调用它willMoveToParentViewController或didMoveToParentViewController像这样。两者几乎相同。(willMoveToParentViewController将被提前调用(我的观察:广告将在转换回来时显示)didMoveToParentViewController(我的观察:广告将在完全转换回来时显示))

override func willMoveToParentViewController(parent: UIViewController?) {
    super.willMoveToParentViewController(parent)
    if parent == nil {
        appDelegate.showInterstitialAd()
    }
}
Run Code Online (Sandbox Code Playgroud)

或者

override func didMoveToParentViewController(parent: UIViewController?) {
    super.didMoveToParentViewController(parent)
    if parent == nil {
        appDelegate.showInterstitialAd()
    }

}
Run Code Online (Sandbox Code Playgroud)

从这个答案中得到了想法。/sf/answers/1228636671/

附言。调用interstitial.presentFromRootViewController(self) oninterstitialDidReceiveAd` 不是调用它的最佳方法,因为您无法控制它何时显示。