Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 组合现有视图/控制器的最佳方法?_Iphone_Objective C_Model View Controller - Fatal编程技术网

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

Iphone 组合现有视图/控制器的最佳方法?,iphone,objective-c,model-view-controller,Iphone,Objective C,Model View Controller,我有一个现有的iPhone视图控制器,它有一个相应的视图(通过nib),显示一个交互式图形。用户可以触摸光标点沿曲线移动,并获得与触摸点对应的数据 现在,我想创建一个新的屏幕,它是一种“比较”屏幕,它结合了这两个现有视图。因此,用户可以看到两个不同曲线的图形,并分别进行交互。我认为如果使用精确的现有视图,只需调整大小以适应一半的空间就可以了 在最大限度地提高重用性的同时,对实现这一点的最佳方法有什么看法 苹果的文档建议在iPhone上每个屏幕只使用一个视图控制器。该框架的设计并不是为了支持每个屏

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

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


在最大限度地提高重用性的同时,对实现这一点的最佳方法有什么看法

苹果的文档建议在iPhone上每个屏幕只使用一个视图控制器。该框架的设计并不是为了支持每个屏幕上的多个视图控制器,但是如果你小心的话,你可以摆脱它

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

实现这一点的关键是手动将某些调用从CompositeViewController委托给子视图控制器。特别是,如果希望在子视图控制器上调用这些方法,则需要委托这些方法:

  • 视图将显示:动画:
  • viewdide显示:动画:
  • 视图将消失:已设置动画:
  • viewdideglobe:动画化:

最大限度地重用是什么意思?我希望重用现有的视图控制器代码,而不是编写一个新的视图控制器,基本上在每个视图中复制代码,但同时处理这两个视图,而不仅仅是现在的视图控制器。