在视图之间导航时显示插页式广告

时间:2016-01-24 01:24:26

标签: swift ios9 interstitial

我有一个名为 RootVC 的最顶级父级或根UIViewController。有3个名为 ChildA 的儿童或叶UIViewController ChildB ChildC ,其继承自 RootVC
ChildA ChildB ChildC UIView相关联,用户可以在A,B和C之间来回导航通过点击每个视图上的内容。

RootVC 中,我有代码显示Interstitial广告。我会计算用户在每个ViewDidAppear()中来回导航的次数,并且在一定数量之后我会调用插页式广告。

因此,只要调用插页式广告的条件为真,就会通过调用调用插页式广告:

presentFromRootViewController(controller: UIViewController) //Google Ads 
presentWithViewController(controller: UIViewController) //Flurry Ads

这里我传递self作为参数。到目前为止一切都很好。

如果用户在间隙条件成立时停留在视图上,则此排列可正常工作。但如果视图发生变化,我会收到警告:

尝试出席< XADInterstitial> on< MyApp.ChildA>其视图不在窗口层次结构中!

插页式广告显然没有显示出来。 所以我想问一下如何以正确的方式做到这一点?是否有确定的设计模式来显示此类情况下的插页式广告?

1 个答案:

答案 0 :(得分:1)

一种解决方案是实施UINavigationControllerDelegate,特别是navigationController:willShowViewController:animated:

当您从willShowViewController检测到要显示插页式广告时,请调用rootVC' func presentViewController()方法并传递插页式视图控制器。