OOP是否适用于Xcode故事板?

时间:2015-05-22 09:10:43

标签: ios xcode storyboard subclass scene

我正在使用闪存卡应用。用户单独选择问题和答案类别。一些问题类别是文本的("巴西的首都是什么?"其他是图像("这是哪个国家的国旗?")。

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

90%的场景是相同的:问题计数器,正确和错误的答案计数器,4 UIButton s用于多项选择答案,UIButton返回主菜单。类似地,每个UIViewController子类的90%的代码也是相同的,因此我将它抽象为超类。

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

我喜欢有两个"层次"在我的场景中....第一层呈现公共元素并由单个父VC控制,第二层呈现特定于每个场景的元素并由相应的VC控制。

我在做梦吗?或者有什么我还没有学到或想出来的东西?

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

任何想法,提示和建议都非常受欢迎。

1 个答案:

答案 0 :(得分:1)

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

顺便说一下,您也可以使用自定义SubVC2执行此操作。在这里,您还可以选择是在Interface Builder中还是在代码中创建这些...实际上,在这个问题上没有技术限制:)