【问题标题】:Subview vs childViewController子视图与子视图控制器
【发布时间】:2012-10-10 14:55:18
【问题描述】:

这是一个普遍的问题,但我会用一个具体的例子来问它以避免混淆:

我正在开发一个在单个屏幕上具有 UIPickerView 等内容的应用。我想知道是否适合制作一个自定义 PickerViewController 类来控制我的 UIPickerView 然后将我的 PickerViewController 添加为 childVC...

或者我应该在我现有的 VC 中创建一个 UIPickerView 的实例并从那里控制它吗?

我应该什么时候做这些选择,它们有什么好处?

感谢朋友的帮助。

【问题讨论】:

    标签: objective-c model-view-controller architecture


    【解决方案1】:

    如果 UIPickerView 与其他 UI 元素同时出现在屏幕上,那么您应该将其添加为子视图。视图控制器的概念适用于您开始管理完全不同的 UI/窗口/元素集(无论您如何称呼它)。如果选择器视图与其他元素的功能密切相关,则不应为其创建单独的视图控制器。

    【讨论】:

    • 有道理,谢谢。那么添加子VC的正确使用场景是什么?
    • @JordanC 当您切换到全新的上下文/窗口时,例如。 G。点击 UITableViewCell 上的“详细信息”箭头会在文件浏览器视图控制器等中打开文件的属性。
    • 在那种情况下,你不会做一个 [self.navigationController pushViewController] 吗?
    • @JordanC euh,确实需要创建一个新的视图控制器。 - pushViewController: 接受一个参数(参见文档)。
    • 对,我的意思是 [self.navigationController pushVC: FileBrowserViewController] 使用您的示例。那不行吗?那么为什么/何时使用 childVC?
    【解决方案2】:

    iOS 5.0 引入了子视图控制器的概念。最初,除了 UINavigationController 和 UITabBarController 之外的任何视图控制器都必须是模态的和全屏的。在 iOS 5.0 中,您现在可以在一个屏幕上显示多个 UIViewController。这意味着一个 UIViewController 可以有多个子 (UIViewController),每个子负责控制更具体的视图和模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多