在iOS中获得UITabViewController外部视图的好方法

时间:2012-11-23 16:21:24

标签: ios advertisement

我只是在一年左右之后回到iOS开发中,并且正在寻找一种在UITabViewController视图之上或之下拥有单个视图的方法。我们的想法是在整个应用中使用一个广告视图,而不是在每个标签上使用一个广告视图。不断重新初始化广告视图似乎会产生大量开销,因此在整个过程中持续存在似乎更有效。

我已经搜索了这个,但没有发现任何东西,所以即使是有用的链接也会受到赞赏。

提前致谢, 杰森

3 个答案:

答案 0 :(得分:1)

如何创建父视图控制器,并且每个视图控制器都从该父视图控制器继承?父视图控制器具有广告视图或表视图,因此每个子视图控制器也将具有这两个视图。

答案 1 :(得分:1)

我在这里看到了几种方法:

  1. 由于您要在应用程序的委托中设置视图层次结构,因此我建议您创建一个单独的UIViewController并从您的应用委托管理它。这样你就可以在主UIWindow中显示/隐藏它,而无需做太多工作。

  2. 您可以继承UITabBarController并在可见视图控制器中显示广告。这是更多的工作,但您的应用程序架构可以说更清晰,因为您的应用程序代表不会混淆与广告相关的代码。

  3. 另一种选择是查看UIViewController类别,您可以在其中管理添加相关代码。不一定是最干净的,但它会将广告从您的应用代表和标签栏控制器中分离出来。 (您可以通过运行时级别调用和关联对象将广告视图添加为类别属性,但这会变得混乱。)

  4. 如果是我的话,我可能会采用第一种方法,但我可以争论其他两种方法中的任何一种,因为广告视图并不需要它自己的视图控制器。

答案 2 :(得分:0)

好的,在花了一些时间尝试为此创建和管理客户视图控制器之后,我偶然发现了Apple在iOS 5中添加的Container View Controller功能。我不需要支持iOS 4或更早版本,所以这对我有用。这里有一个很好的描述(不幸的是,作者从未在教程中写过第2部分):

Container View Controller description

这里提供了一个不错的教程:

Container View Controller tutorial

在其中两个之间,我能够使用容器视图控制器中包含的AdViewController和BodyViewController(TabBarController)创建一个良好的设置。这给了我所需的所有功能(至少到目前为止)。