代码之家  ›  专栏  ›  技术社区  ›  Matt Long

uitabarcontroller uinavigationcontroller设计建议

  •  3
  • Matt Long  · 技术社区  · 15 年前

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

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

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

    你们都认为/知道什么?这会产生什么设计缺陷?您如何解决需要视图中视图的表格表示的问题?我需要重新考虑整个设计吗?

    谢谢。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Joe Ricioppo    15 年前

    我可以从设计的角度看到它们的来源。Tabbars感觉被锚定,保持不变,Navbars感觉是动态的和可变的。因此,包含动态内容的选项卡是有意义的,而在包含选项卡栏的导航堆栈的动态层次结构中,固定在屏幕底部的单个点感觉不太正确。three20实现确实以一种更有意义的方式来处理这个问题,将选项卡锚定在导航栏下面,这样它们就感觉更像是导航堆栈中该点的一部分。

    尽管如此,如果我没记错的话,tweetie会滚动它自己的标签栏,没有uitabbarcontroller来绕过用户界面指南中的这个细节,它完全从交互的角度工作。

        2
  •  1
  •   Mickey Ristroph    15 年前

    简短的答案是,如果用户允许在导航控制器中使用uitabars,那么这会让用户感到困惑。这个应用肯定不会像大多数用户预期的那样运行。但是,这只是Uitabbar,而不是一般的选项卡设计概念。导航控制器内的标签,在我的设计意见中,应该在顶部,而不是底部,就像一个UItaBar。

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

    我在导航器视图控制器中通过让表视图中的第一行具有分段选取器来完成“选项卡”。(请参见应用商店上的Hangtime应用程序)。我觉得它很好用,但它们不是真正的“标签”。

    JoeHewitt,一个写了Facebook应用程序的人,通过创建自己的“标签栏”视图和控制器来解决这个问题,尽管它的呈现方式与Uitabbar有很大的不同。该元素通过three20框架和开放源码库提供。过来看: http://github.com/joehewitt/three20/tree/master

        3
  •  0
  •   Kevlar    15 年前

    我认为标签栏控制器是应用程序的主要导航点,如果它被使用的话。如果导航控制器包含选项卡控制器,则无论何时导航到其他地方,选项卡都会切换,这可能会使习惯于在其他应用程序中使用它们的用户感到困惑。不过,我认为这是一个很酷的想法,但苹果可能感觉不到这一点。