1

我有一个带有四个视图控制器的 TabBarController。在我的第一个视图控制器中,我有以下两种方法:

-(void)loadclistview
{
    [self.tabBarController setSelectedIndex:2];
}

-(void)loadglistview
{
    [self.tabBarController setSelectedIndex:1];
}

我使用它们将视图从一个选项卡更改为另一个选项卡。但是以这种方式更改选项卡不会保留我的横幅视图,它不会将横幅加载到新的视图控制器(选项卡)中。如果我使用标签栏更改标签,所有视图都会正确加载横幅。请在这里帮助我 - 我不知道为什么会这样,我应该怎么做才能通过选择器切换选项卡,以便横幅将加载到新视图中。

编辑:

我通过将当前横幅视图作为子视图添加到选项卡栏中选定的视图控制器来解决它;像这样:

[self.tabBarController.selectedViewController.view addSubview:_bannerView];

我看到这也适用于将横幅视图添加到导航控制器的后续视图 - 就像在构成选项卡的主视图的子视图中显示横幅一样;

[self.navigationController.view addSubview:_bannerView];
4

1 回答 1

1

以这种方式添加子视图很好,但是当存在或不存在 iAd 时,您还必须处理它的显示/隐藏,以及调整内容视图的大小以为显示子视图腾出空间。Apple iAdSuite示例中的 TabbedBanner 项目很好地封装了此功能。

于 2013-01-12T12:54:38.150 回答