1

例如,我有一个带有导航栏、按钮和与之关联的操作的视图。有没有办法打包视图和控制器的一部分,以便我可以将它连同它的代码一起拖放到其他视图中?当然,将代码维护在一个地方,更改会反映在所有使用它的页面中。

这是否可以通过创建框架和超类来实现,以便在项目甚至其他项目之间共享?不确定是否也打包 UI 视图组件本身。任何经验或方向将不胜感激!

4

1 回答 1

0

这是我的一个小烦恼。您在问如何模块化和重用视图控制器的部分,而不是视图。

UIView 和 UIViewController 属于完全不同的对象家族。将视图控制器称为视图会导致混乱。

请返回并编辑您的主题和问题正文以使用正确的术语。

编辑:

可能最简洁的方法是使用容器视图和嵌入 segue 组合视图控制器。您使每组组件成为自己的视图控制器。然后,当您想在另一个视图控制器中托管视图控制器的内容时​​,请按照以下步骤操作:

  • 在情节提要中创建组件视图控制器的实例并根据需要对其进行配置。

  • 将容器视图拖到您的托管视图控制器上并将其放置在您想要的位置。(请记住设置约束,以便它在运行时实际放置在那里。)

  • 从容器视图中按住 Control 并拖动到要添加为模块的组件视图控制器上。

当你这样做时,组件视图控制器成为一个构建块,你可以简单地放入另一个视图控制器并独立运行。它工作得很好,可以做你想做的事,代码和视图作为一个单元运行。

差不多就是这样。如果要将宿主视图控制器和组件视图控制器连接在一起,可以在宿主视图控制器的 prepareForSegue 方法中添加代码,将宿主视图控制器设置为组件视图控制器的委托,并且可以保存指向组件的指针视图控制器,以便您以后可以在需要时向其发送消息。

于 2015-04-28T23:43:54.730 回答