OOP 是否适用于 Xcode 故事板?

Does OOP apply to Xcode storyboards?

我正在开发闪存卡应用程序。用户分别选择问题和答案类别。一些问题类别是文本 ("What is the capital of Brazil?",其他问题类别是图像 ("This is the national flag of what country?")。

给定回合中的问题将始终是文本或始终是图像。因此,我的故事板中有两个单独的场景,每个选项一个。

90%的场景是相同的:问题计数器,正确和错误答案计数器,4 UIButtons 用于选择题答案,UIButton 到 return 到主菜单。同样,每个 UIViewController 子类的 90% 代码也是相同的,因此我将其抽象为一个超类。

但是...可以对 visual 元素做同样的事情吗?就像每个页面上都有相同页眉的 PowerPoint 演示文稿。

我希望在我的场景中有两个 "layers"....第一层呈现公共元素并由单个父级控制 VC,第二层呈现元素具体到每个场景,由对应的VC控制。

我是在做梦吗?还是有什么我还没有学到或想通的?

写这篇文章时,我认为自定义视图可能是解决方案,但我无法理解它。即使使用自定义视图,我仍然必须每次都与公共元素建立联系,不是吗?

我们非常欢迎任何想法、提示和建议。

你描述的完全没有问题!您可以创建一个超类,我们称它为SuperVC(它本身是UIViewController的子类),向其添加IBOutlets,然后创建SuperVC的子类,我们称它们为SubVC1SubVC2,并在其中创建 IBOutlets。然后,在您的 Storyboard 中,您可以将适当的元素连接到所有这些 IBOutlets,只需确保您在 Assistant Editor 中打开正确的文件即可(逻辑上,如果您从 SuperVC 连接 IBOutlets 您需要在 Assistant Editor 中打开 SuperVC,同样对于 SubVC1SubVC2).

顺便说一下,您也可以使用自定义 UIViews 来做到这一点。同样,您还可以选择是在 Interface Builder 中还是在代码中创建这些...所以真的,这个问题没有技术限制:)