【问题标题】:How to hide the UITabBar and show UIToolBar?如何隐藏 UITabBar 并显示 UIToolBar?
【发布时间】:2012-01-03 16:09:30
【问题描述】:

我阅读了这个问题的几个答案,但不知道该怎么做。我正在使用带有 ARC 的 Xcode 4.2 并且没有情节提要。

我正在开发一个基于 TabBar 应用程序模板的应用程序,并将其扩展为包含 4 个UITabBars。我没有使用UINavigationController,而是在状态栏旁边使用UINavigationBar。当应用程序加载显示的第一个选项卡时,我在 UINavigationBar 上有一个按钮,当我按下它时,我想隐藏 UITabBar 而是在 UITabBar 所在的同一位置显示 UIToolBar位于。

我尝试使用 hidden 属性隐藏和显示(隐藏 UITabBar 并显示 UIToolBar)。发生的情况是UITabBar 被隐藏,但UIToolBar 显示在之前显示UITabBar 的位置上方。这看起来很难看,我希望它显示在屏幕的最底部。

我认为我不能使用hidesBottomBarWhenPushed,因为我不使用UINavigationController,而是直接使用导航栏。

另外,当按下UINavigationBar 上的相同按钮时,我想恢复显示UITabBar 并隐藏UIToolBar

【问题讨论】:

  • 你能分享你的代码吗?你能发布如何为 UIToolBar 创建“框架”吗?
  • UITabBar 以编程方式创建(由 UITabBar 应用程序模板完成)。我使用 IB 将 UIToolBar 拖到 xib 文件中,并在 .h 文件中添加了一个 IBOutlet 并在第一个选项卡中显示的 UIViewController 上的 .m 文件中合成。使用综合属性,我能够显示工具栏。我没有使用任何代码来操作工具栏的框架。请指教。
  • 我不知道这个的整体背景,但是在你的 tabBarController 上显示 modal UIViewController 是不是更好更合乎逻辑的用户体验?
  • 感谢大家的cmets。我更喜欢使用相同的 UIViewController 来隐藏/显示 UIToolBar。原因是,当用户按下导航栏上的“开始”按钮时,我正在操作 UIViewController 中心的标签。是否无法在同一个视图控制器中隐藏/显示 UIToolBar?我所需要的只是将 UIToolBar 移动到显示 UITabBar 的屏幕的最底部。顺便说一句,这是否违反了 Apple 的 HIG?
  • 有人可以帮助我吗?我真的在这个问题上停滞不前。

标签: ios ios4 ios5 objective-c-category


【解决方案1】:

我不确定我的想法是否适用于您的场景。在这里……

但在此之前,让我告诉你隐藏UITabBar,不像隐藏UINavigationBar 不是动画。所以对我来说,隐藏 tabBar 不是一种用户友好的方法,除非您创建自己的 UITabBarController 子类来动画隐藏 UITabBar

您可以使用presentModalViewController:animateddismissModalViewControllerAnimated: 方法。模态显示的 viewController 可以有一个UINavigationBar,它从屏幕底部弹出并用动画覆盖UITabBar

希望对您有所帮助。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

【讨论】:

  • 你就是那个男人。我听从了你所说的,这绝对是有道理的。该应用程序现在看起来很酷并且运行良好。不过感谢您的提示!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-24
  • 2011-04-20
相关资源
最近更新 更多