1

我正在尝试实现与这篇文章的用户类似的东西:

Xcode/iOS:如何在向下滚动时隐藏导航和工具栏?

我可以使用以下代码成功隐藏(或使用 NO 取消隐藏)导航栏:

[[self navigationController] setNavigationBarHidden:YES animated:YES];

但是,当我尝试使用代码隐藏工具栏时:

[[self navigationController] setToolbarHidden:YES animated:YES];

没发生什么事。然后我注意到在取消隐藏工具栏时我收到了一个我没有意识到存在的额外蓝色工具栏。此屏幕截图显示了这一点:

截屏

我不要蓝色的吧。我想要做的是隐藏或取消隐藏带有图标的黑色工具栏。(UITabBar)。

我认为我需要做的是我需要以某种方式访问​​父视图控制器之一的导航控制器并在该视图的导航控制器上调用 setToolbarHidden。但是,我似乎无法弄清楚如何做到这一点。

我尝试了以下方法,但似乎都没有效果:

[[[self parentViewController] navigationController] setToolbarHidden:YES animated:YES];

or

[[[[[[UIApplication sharedApplication] delegate] window] rootViewController] navigationController] setToolbarHidden:YES animated:YES];

我的视图控制器故事板包括以下内容:

InitialViewController 是一个 TabBarViewController。它包含三个孩子。其中一个孩子是 UINavigationController。这个导航控制器将几个 UITableViewController 推送到它上面,最终推送了一个 UIViewController。最后一个 UIViewController 就是屏幕截图中看到的。

粗略的布局:

  • TabBarViewController
    • UIViewController
    • UITableViewController
    • UINavigationController
      • UITableViewController
        • UITableViewController
          • UITableViewController
            • UIViewController

我试过使用

[self parentViewController] parentViewController] parentViewController] ...

试图回到顶端,但这似乎也没有奏效。

有什么建议么?

4

1 回答 1

1

我认为这里的问题可能与UITabBarController没有UIToolbar. 该setToolbarHidden:方法仅适用于UINavigationController内置工具栏(请参阅 Apple 的文档)。如果它UITabBarController是您真正想要隐藏的标签栏,请查看这篇文章,它链接到UIView直接UITabBar.

于 2012-11-08T06:36:49.577 回答