如何正确处理情节提要中的类似视图,这些视图具有类似的控制器而无需重复代码?

Posted

技术标签:

【中文标题】如何正确处理情节提要中的类似视图,这些视图具有类似的控制器而无需重复代码?【英文标题】:How to deal correctly with similar views in storyboard, that have similar controllers without duplication of the code? 【发布时间】:2017-08-12 09:06:18 【问题描述】:

我在故事板中有 2 个视图(xcode、swift),它们具有相同的主要元素,但导航元素完全不同。一个视图在注册后显示,第二个视图是应用设置的一部分。

页面如下所示:

Onboarding select books select books in the settings

我的程序员做了什么:2 个带有复制和粘贴元素的单独视图以及单独的控制器(具有重复的功能,400 行代码被复制和粘贴!)

在 Xcode 中正确的做法是什么?

【问题讨论】:

我错了,我确实放了 android 的屏幕截图。我们遇到的问题出现在 XCode 中。我确实上传了新的屏幕截图。 好的,这就解释了原因。不幸的是,我对 ios 不再那么熟悉了。祝你的问题好运! 您可以将该视图设为 XIB,然后您可以在任何地方重复使用它。你只需要在你的单一视图中编码。 将该视图 xib 作为子视图添加到要使用它的 viewController 中。 【参考方案1】:

创建一个唯一的 UIViewController 来处理“列表”事物,并将其嵌入到 2 个不同的其他 UIViewController 中,这些 UIViewController 将只处理不同的导航。您可以在情节提要中使用“containerView”元素。见https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html

【讨论】:

以上是关于如何正确处理情节提要中的类似视图,这些视图具有类似的控制器而无需重复代码?的主要内容,如果未能解决你的问题,请参考以下文章

使用相同背景图像的具有多个场景的视图控制器 (UIViewController) 情节提要

如何在情节提要中正确创建覆盖视图?

如何以编程方式从情节提要中填充静态 UITableView?

管理登录状态+登录视图(使用情节提要)的正确方法是啥?

您可以使用为带有情节提要的 xib 创建的视图控制器吗?

使用情节提要并更改视图时,声音不会停止在新视图中播放