3

这更像是一个哲学问题,所以请给我你的想法。

iPhone SDK 文档指定您可以让标签栏控制器包含导航控制器,但您不能让导航控制器包含标签栏控制器。似乎有时您可能希望以表格方式组织视图中的视图,该视图是导航控制器堆栈的一部分。这不合理吗?

我接受 Apple 在这些领域的规定作为福音,因为 HIG 确实提供了似乎揭示阻力最小的路径的最佳实践(我相信这也有例外)。但是,在标签栏的情况下,我不确定其背后的设计原因。也许这对其他人来说是显而易见的,但我想不出一个很好的理由为什么你不允许标签作为根级视图控制器之外的任何东西。

大家觉得/知道什么?这会造成什么设计缺陷?您将如何解决希望在视图中以表格形式表示视图的问题?我需要重新考虑整个设计吗?

谢谢。

4

3 回答 3

1

简短的回答是,在导航控制器中允许 UITabBars 会让用户感到困惑。该应用程序肯定不会像大多数用户期望的那样运行。但是,那只是UITabBar,不是一般的tabs的设计理念。在我的设计意见中,导航控制器内的选项卡应该像 UITabBar 一样位于顶部,而不是底部。

有几种不同的方法可以做到这一点。

通过让表格视图中的第一行具有分段选择器,我在导航器视图控制器中完成了“选项卡”。(请参阅应用商店中的 HangTime 应用)。我认为它工作得很好,但它们并不是真正的“标签”。

编写 Facebook 应用程序的人 Joe Hewitt 通过创建自己的“标签栏”视图和控制器解决了这个问题,尽管它的呈现方式与 UITabBar 完全不同。该元素可通过 Three20 框架和开源库获得。看看:http: //github.com/joehewitt/three20/tree/master

于 2009-08-10T02:02:30.790 回答
1

从设计的角度来看,我可以看到它们来自哪里。标签栏感觉固定、不变,而导航栏感觉动态和可变。因此,包含动态内容的选项卡是有意义的,而在包含选项卡栏的导航堆栈的动态层次结构中,锚定在屏幕底部的单个位置感觉不正确。Three20 实现确实以更有意义的方式处理了这个问题,将选项卡锚定在导航栏下方,让它们感觉更像是导航堆栈中那个位置的一部分。

话虽如此,Tweetie 滚动它自己的标签栏,如果我没记错的话,没有 UITabbarController 来规避 UI 指南中的这个细节,它完全从交互的角度工作。

于 2009-08-23T22:32:20.403 回答
0

我认为标签栏控制器旨在成为应用程序周围导航的主要点(如果使用它)。如果导航控制器包含选项卡控制器,那么每当您导航到其他地方时,选项卡都会切换,这可能会让习惯于在其他应用程序中以常规方式使用它们的用户感到困惑。然而,我认为这是一个很酷的想法,但苹果可能不会有同样的感觉。

于 2009-08-08T18:57:44.790 回答