大约一年后,我才刚刚回到 iOS 开发中,并且正在寻找一种在 UITabViewController 视图上方或下方拥有单个视图的方法。我们的想法是在整个应用程序中使用一个广告视图,而不是在每个选项卡上使用一个。广告视图的不断重新初始化似乎会产生很多开销,因此始终坚持一个似乎更有效。
我已经搜索过这个但没有找到很多东西,所以即使是有用的链接也会受到赞赏。
在此先感谢,杰森
如何创建一个父视图控制器并且每个视图控制器都从该父视图控制器继承?父视图控制器具有广告视图或表格视图,因此每个子视图控制器也将具有这两个视图。
我在这里看到了几种方法:
由于您在应用程序的委托中设置视图层次结构,我建议创建一个单独的UIViewController
并从您的应用程序委托中管理它。这样您就可以在主 UIWindow 中显示/隐藏它,而无需做太多工作。
您可以子类UITabBarController
化并在可见视图控制器中显示广告。这是更多的工作,但你的应用架构可以说是更干净,因为你的应用代理不会被与广告相关的代码弄得一团糟。
另一种选择是查看一个UIViewController
类别,您可以在其中管理添加相关代码。不一定是最干净的,但它可以将广告排除在您的应用程序委托和标签栏控制器之外。(您可以通过运行时级别调用和关联对象将广告视图添加为类别属性,但这会变得混乱。)
如果是我,我可能会采用第一种方法,但我可以支持其他两种方法中的任何一种,因为广告视图并不需要它自己的视图控制器。
好的,在花了一些时间尝试为此创建和管理客户视图控制器后,我偶然发现了 Apple 在 iOS 5 中添加的容器视图控制器功能。我不需要支持 iOS 4 或更早版本,所以这对我很有用。这里有一个很好的描述(不幸的是作者从来没有用教程写过第 2 部分):
这里有一个不错的教程:
在这两者之间,我能够使用容器视图控制器中包含的 AdViewController 和 BodyViewController (TabBarController) 创建一个良好的设置。这为我提供了我需要的所有功能(至少到目前为止)。