2

我的问题与此类似,但在那里没有完全回答。

我想要做的,是将一个现有的基于导航的应用程序UIToolbars在个人的底部有不同的UITableViews转换成一个有UITabbar界面的应用程序。其中一个选项卡应显示与现有应用程序相同的 UITableView 数据层次结构(显示某种层次结构数据),而其他选项卡将分配其他无关紧要的内容(例如:设置、帮助...)这里。这个想法是允许用户从导航堆栈的任何阶段快速切换到“帮助”屏幕 - 并返回。

例如,使用 3 个选项卡:

 1. Database root (UIToolbar) - folder 1 (UIToolbar) - file 1.1
                                                     - file 1.2
                              - folder 2 (UIToolbar) - file 2.1
                                                     - file 2.2
 2. Help (no UIToolbar)
 3. Settings (no UIToolbar)

我从未在任何现有应用程序中看到过这样的设计,尽管上面引用的问题表明实际上可以将现有 UIToolbars 从旧应用程序中保留下来,并将它们简单地放在标签栏上方。

这是

  • 技术上可行(没有问题,例如设备旋转)?
  • 接口指南允许吗?

尽管示例代码将不胜感激,但我主要想知道是否值得尝试构建这样的应用程序 - 或者这样的设计首先是否是一个坏主意。

4

2 回答 2

0

你可以在任何地方拥有一个 UITabBar,你只是不会使用它的控制器。您必须编写自己的控制器并处理设备旋转期间发生的事情(或使用 iOS 6 的自动布局功能)。

于 2012-10-19T14:55:37.350 回答
0

我试过了,现在我可以回答我自己的问题了:

  • 如果您确保每个选项卡的视图都可以旋转,这是可能的,并且设备旋转没有问题。
  • 虽然它看起来有点不寻常,但我觉得它非常有用。当然,它需要一些垂直空间。

至于实现,我发现它非常简单:我所要做的就是使用 Interface Builder 插入 aUITabBarController代替我原来的 mainUIViewController并将后者移动到前者的第一个选项卡。然后用 inside 创建更多选项卡,UIViewControllers并将它们的类重命名为我其他现有的UIViewControllers. 最后,在相关的界面构建器检查器窗格中手动为所有这些控制器设置关联的 NIB 文件(因为它们现在不再由我的代码实例化)并更改一行代码以制作UITabBarController控制器root

结果:UIToolbar出现在UITabbar第一个选项卡的上方,但不显示其他选项卡。它的位置是固定的(当滚动列表或类似时),但它会与标签栏和其他所有内容一起自动旋转。

于 2012-10-23T13:34:51.790 回答