1
10
编辑:在iOS5+中更好的方法可能是使用view-controller-containment。也就是说,创建一个包含广告和应用程序控制器(nav、tab等)的根控制器。
在我的第一次尝试中,我创建了一个名为AdBannerController的新视图控制器。对于它的视图,我创建了一个全屏视图和两个子视图。第一个子视图(contentView)用于常规内容,第二个子视图是AdBannerView。我使用此视图控制器的一个实例作为与应用程序窗口关联的视图控制器([窗口添加子视图:adBannerController.view] ). 然后我添加了我的UI导航控制器.view作为的子视图adBannerController.view: [adBannerController.contentView添加子视图:导航控制器.view]. 除了推送到UINavigationController的viewcontrollers从未调用will/did load/unload方法之外,这种方法基本上是有效的。嘘。我在一些地方读到,这是UINavigationController视图不是app窗口的直接后代的症状。 对于我的第二次尝试,我使用相同的AdBannerController并从UINavigationController派生它。这次,我在loadView中执行了以下操作:
注意发生了什么-我让超类UINavigationController构造它的常规“content”视图,但是我交换了它并用我自己的视图替换它,它是content和ad视图的容器。 这很管用。我也在使用three20,有一些东西需要使这个设置工作,但不是太糟。 我希望这能帮助别人! |
2
3
在Apple的dev示例代码中,iAdSuite项目包含为您完成这项工作的项目。强烈推荐。 |
3
2
在我的根视图控制器(w/ADBannerViewDelegate)中,我通过将横幅添加到nav controller视图来设置横幅,该视图使其始终位于顶部:
注意,您必须注释掉代理方法bannerViewIDLoadAD中的layoutImated,因为它将尝试向上移动ad视图:
|
4
0
http://developer.apple.com/library/ios/#samplecode/iAdSuite/Introduction/Intro.html 我下载了代码,重点放在“tab”示例上。我将BannerViewController.h/.m原样复制到我的项目中。
AppDelegate类实现TabBarControllerDelegate协议:
AppDelegate实现didFinishLaunchingWithOptions方法获取预构建的tabBar,将其委托设置为self(例如AppDelegate类)。
然后,我按照iAdSuite方法构建了一组新的控制器,并用这些新的选项卡栏项重置选项卡栏。
这种方法将相同的“广告”放在每个视图的底部,完全按照需要。我还必须在每个自定义viewController的viewDidLoad方法中设置视图标题(不知何故,在栏项上设置它似乎不起作用,而不是设置图像;后者可能反映了我的图像的问题)。 我原来的配置是
在视图生命周期方面,我应该补充一点,在调用updateaid方法时,只有NavControllers存在。 调用完成后,将创建单个CustomViewControllers1/2/3/etc。 |
sandpat · 使导航堆栈中只有一个导航栏透明iOS Swift 6 年前 |
Witterquick · 刷新导航栏背景色 6 年前 |
user8902111 · 导航控制器按钮问题 6 年前 |
COLD ICE · 使用彩色导航栏时,搜索栏中会出现白线 7 年前 |