【发布时间】:2016-07-19 22:41:06
【问题描述】:
我有一个简单的应用程序,需要一些帮助才能正确触发插页式广告。该应用程序只是两个视图。 MainVC 和 ModalVC。在 ModalVC 上,有一个 [CLOSE] 按钮可以将用户返回到 MainVC:
@IBAction func closeButtonPressed(sender: UIButton) {
self.dismissViewControllerAnimated(true, completion: nil).
}
为了从 MainVC 到 ModalVC,我使用以下方法:
self.performSegueWithIdentifier("mainSegue", sender: self)
// Present Modally segue, default presentation, cross dissolve transition.
我遇到的主要问题是在 closeButtonPressed 上触发插页式广告。我想触发插页式广告,而在后台执行dismissViewController。这样,一旦用户完成插页式广告,他们将返回 MainVC。 (插页式广告将每 4 次转换触发一次。仅供参考。对我的主要问题来说并不是非常重要。) 正在发生的是插页式广告加载,然后立即关闭。见以下代码:
@IBAction func closeButtonPressed(sender: UIButton) {
//INTERSTITIAL TRIGGER!
if (self.interstitial.isReady) {
self.interstitial.presentFromRootViewController(self)
self.interstitial = self.createAd()
dismissViewControllerAnimated(true, completion: nil)
}
else {
dismissViewControllerAnimated(true, completion: nil)
}
}
另外,我尝试了下面的 GADInterstitialDelegate 方法......顺便产生了与上面的代码相同的结果:
@IBAction func closeButtonPressed(sender: UIButton) {
//INTERSTITIAL TRIGGER!
if (self.interstitial.isReady) {
self.interstitial.presentFromRootViewController(self)
self.interstitial = self.createAd()
interstitialDidReceiveAd(interstitial)
}
else {
dismissViewControllerAnimated(true, completion: nil)
}
}
/// Called when an interstitial ad request succeeded.
func interstitialDidReceiveAd(ad: GADInterstitial!) {
print("interstitialDidReceiveAd")
self.dismissViewControllerAnimated(true, completion: nil)
}
我还在 [CLOSE] 按钮上尝试了 Unwind segue,它会在 MainVC 上触发以下内容:
@IBAction func unwindToMain(segue: UIStoryboardSegue) {
// unwinded
if (self.interstitial.isReady) {
self.interstitial.presentFromRootViewController(self)
self.interstitial = self.createAd()
}
}
这给了我这个错误: 警告:尝试在 testAd.MainVC: 0x7f9e02c44b50 上显示 GADInterstitialViewController: 0x7f9e01ca7a80,其视图不在窗口层次结构中!
理想情况下,我希望 Interstitial 触发器全部保留在 ModalVC 上,只是因为我希望 Interstitial 在 MainVC 出现之前出现。
感谢任何帮助。我在这个上打了一天多的轮胎……哇……提前谢谢!
【问题讨论】:
-
这与我试图通过 segues 实现的目标非常相似(或者如果有人有其他解决方案。)storage.googleapis.com/support-kms-prod/…(取自 - support.google.com/admob/answer/…)
标签: ios swift admob segue interstitial