3

我正在实施基于 iAdSuite 中 TabbedBanner 示例的设计。我在第一个选项卡中有一个 UINavigationController。在那个 UINavigationController 我有一个视图控制器,它只是有一个按钮,可以推送到另一个视图控制器。推送的视图控制器在 Interface Builder 中设置为 Hide Bottom Bar On Push。

这是我设置 UITabBarController 的代码。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];

    _tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"TabBarController"];
    _tabBarController.delegate = self;

    FirstViewController *firstView = [storyboard instantiateViewControllerWithIdentifier:@"FirstViewController"];
    UINavigationController *firstNav = [[UINavigationController alloc] initWithRootViewController:firstView];

    _tabBarController.viewControllers = @[[[BannerViewController alloc] initWithContentViewController:firstNav], ];

    self.window.rootViewController = _tabBarController;
    [self.window makeKeyAndVisible];

    return YES;
}

当我推送到下一个视图控制器时,除了 TabBar 没有隐藏之外,一切正常。我曾尝试使用 Interface Builder 复选框以及使用 nextViewController.hidesBottomBarWhenPushed = YES 隐藏 TabBar,但两种方法都不起作用。

如果我删除 BannerViewController 实现,TabBar 将完全隐藏。在我看来, BannerViewController 正在干扰 UINavigationController 能够隐藏 TabBar。

在这种类型的设置中,是否可以使用“按下时隐藏底部栏”来隐藏 TabBar?

谢谢

注意:我意识到上面的代码只有一个选项卡。为了清楚起见,我删除了其他选项卡。

4

1 回答 1

1

我认为这是因为 BannerViewController 本身只是一个容器 viewController 并且它从未真正推动另一个视图控制器。视图控制器被推送到容器中。

于 2014-09-19T16:14:03.650 回答