这不是iAd问题,而是代码设计和视图控制器通信问题。
我的应用程序的根视图控制器是一个容器视图控制器,它由两部分组成:
基本上,这个容器视图控制器只是真实视图控制器的包装器,其目的是在广告出现和消失时管理显示和布局大小调整。 (这是ContainerBanner sample code from Apple)的直接撕裂。
但是,我有一个难题。 Apple的iAd显示最佳做法是:如果用户从具有横幅视图的内容屏幕导航到没有横幅视图的屏幕,并且您希望它们在该屏幕上很长一段时间,请从视图中删除横幅视图层次结构,将其委托设置为nil并在转换到新的内容屏幕之前释放它。更一般地说,避免在用户看不见时保持横幅视图。
这意味着当一些子视图控制器占用整个屏幕一段时间后,我需要向容器视图控制器发送一条消息以暂停广告显示。
实现这一目标最优雅的方法是什么?
我被绊倒了,因为这种通信必须遍历视图控制器层次结构的几个层次,这使得委托和阻止一个不太好的解决方案。
我能想到的唯一解决方案是让子视图控制器发布通知,容器视图控制器正在监听并通过暂停/恢复广告显示来响应。我想知道是否有其他选择。