我有一个名为 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>其视图不在窗口层次结构中!
插页式广告显然没有显示出来。 所以我想问一下如何以正确的方式做到这一点?是否有确定的设计模式来显示此类情况下的插页式广告?
答案 0 :(得分:1)
一种解决方案是实施UINavigationControllerDelegate
,特别是navigationController:willShowViewController:animated:
。
当您从willShowViewController
检测到要显示插页式广告时,请调用rootVC' func presentViewController()
方法并传递插页式视图控制器。