结合现有视图/控制器的最佳方法?

时间:2010-09-02 23:12:01

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

我有一个现有的iPhone View Controller,它有一个显示交互式图形的相应视图(通过nib)。用户可以触摸光标点以沿着曲线移动并获得与触摸点相对应的数据。

现在,我想创建一个新屏幕,它是一种“比较”屏幕,它结合了两个现有视图。因此,用户可以看到两个不同曲线的图形并分别与每个曲线相互作用。我认为如果使用确切的现有视图会很好,只需调整大小以适应一半的空间。

在最大化重用的同时,有什么方法可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

Apple的文档建议在iPhone上每个屏幕只使用一个视图控制器。该框架并非真正设计为每个屏幕支持多个视图控制器,但如果您小心,可以使用它。

我建议创建一个CompositeViewController类,其中包含对两个子视图控制器的引用。 CompositeViewController的视图设置为全屏包装器视图。每个子视图控制器的视图都设置为适当的子视图。

使这项工作的关键是手动将CompositeViewController中的某些调用委托给子视图控制器。特别是,如果您希望在子视图控制器上调用它们,则需要委派这些方法:

  • viewWillAppear:animated:
  • viewDidAppear:animated:
  • viewWillDisappear:animated:
  • viewDidDisappear:animated: