【问题标题】:When should I use the addSubview method of a view controller?什么时候应该使用视图控制器的 addSubview 方法?
【发布时间】:2011-01-11 20:11:51
【问题描述】:

我正在为 iPhone 编程,我想知道何时使用视图的 addSubview 方法以及何时使用模态视图控制器 (presentModalViewController)。更复杂的是,如果您使用的是导航控制器(我没有)并且您可以使用 pushViewController 方法?

你什么时候使用它们?为什么?

谢谢。

【问题讨论】:

    标签: iphone sdk view controller push


    【解决方案1】:

    -presentModalViewController-pushViewController 是处理同一件事的两种方式:显示新视图。您使用哪种取决于您想要的用户体验。它们对用户意味着不同的东西,但在实现上非常相似。

    -addSubview 完全不同。它将组件添加到当前视图。您永远不应该使用它来显示独立的 UI。 -addSubview 最常用于在 -loadView 中以编程方式创建 UI,尽管它还有许多其他用途。

    【讨论】:

    【解决方案2】:

    这是看待它的一种方式:

    单个导航控制器中的一系列视图控制器代表用户头脑中的单个工作流程。如果在某些时候您需要中断当前的工作流程并创建一个不同的工作流程,您可以创建一个模态对话框。如果新的工作流程只有一个步骤,您只需提供相应的控制器,但如果有很多步骤,您创建一个新的导航控制器以将这些步骤串在一起。

    视觉效果不同 - 导航控制器用户的注意力从左到右移动,而模态对话框从上到下。想象一下,你正在翻一本书(从左到右),在某个时刻你把书从你身边移开,然后从桌子下面拉出另一本书放在你面前(从上到下),然后开始浏览另一本书(从左到右)。然后你关闭整个第二本书并回到你离开的第一本书。

    addSubview 方法位于不同的抽象平面上 - 子视图用于创建我上面描述的两种体验。您可以使用子视图来创建不同的体验,该体验将处于相同的抽象级别。 UIAlertView 和 UIActionSheet 是同一级别结构的更多示例。

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 2011-12-27
      • 1970-01-01
      相关资源
      最近更新 更多