例如,我有一个带有导航栏、按钮和与之关联的操作的视图。有没有办法打包视图和控制器的一部分,以便我可以将它连同它的代码一起拖放到其他视图中?当然,将代码维护在一个地方,更改会反映在所有使用它的页面中。
这是否可以通过创建框架和超类来实现,以便在项目甚至其他项目之间共享?不确定是否也打包 UI 视图组件本身。任何经验或方向将不胜感激!
例如,我有一个带有导航栏、按钮和与之关联的操作的视图。有没有办法打包视图和控制器的一部分,以便我可以将它连同它的代码一起拖放到其他视图中?当然,将代码维护在一个地方,更改会反映在所有使用它的页面中。
这是否可以通过创建框架和超类来实现,以便在项目甚至其他项目之间共享?不确定是否也打包 UI 视图组件本身。任何经验或方向将不胜感激!
这是我的一个小烦恼。您在问如何模块化和重用视图控制器的部分,而不是视图。
UIView 和 UIViewController 属于完全不同的对象家族。将视图控制器称为视图会导致混乱。
请返回并编辑您的主题和问题正文以使用正确的术语。
可能最简洁的方法是使用容器视图和嵌入 segue 组合视图控制器。您使每组组件成为自己的视图控制器。然后,当您想在另一个视图控制器中托管视图控制器的内容时,请按照以下步骤操作:
在情节提要中创建组件视图控制器的实例并根据需要对其进行配置。
将容器视图拖到您的托管视图控制器上并将其放置在您想要的位置。(请记住设置约束,以便它在运行时实际放置在那里。)
从容器视图中按住 Control 并拖动到要添加为模块的组件视图控制器上。
当你这样做时,组件视图控制器成为一个构建块,你可以简单地放入另一个视图控制器并独立运行。它工作得很好,可以做你想做的事,代码和视图作为一个单元运行。
差不多就是这样。如果要将宿主视图控制器和组件视图控制器连接在一起,可以在宿主视图控制器的 prepareForSegue 方法中添加代码,将宿主视图控制器设置为组件视图控制器的委托,并且可以保存指向组件的指针视图控制器,以便您以后可以在需要时向其发送消息。