我正在使用闪存卡应用。用户单独选择问题和答案类别。一些问题类别是文本的("巴西的首都是什么?"其他是图像("这是哪个国家的国旗?")。
给定回合中的问题将始终是文本或总是图像。因此,我的故事板中有两个不同的场景,每个场景都有一个。
90%的场景是相同的:问题计数器,正确和错误的答案计数器,4 UIButton
s用于多项选择答案,UIButton
返回主菜单。类似地,每个UIViewController
子类的90%的代码也是相同的,因此我将它抽象为超类。
但是......可以为 visual 元素做同样的事情吗?就像每个页面上都有相同标题的PowerPoint演示文稿一样。
我喜欢有两个"层次"在我的场景中....第一层呈现公共元素并由单个父VC控制,第二层呈现特定于每个场景的元素并由相应的VC控制。
我在做梦吗?或者有什么我还没有学到或想出来的东西?
写这篇文章时,我认为自定义视图可能是解决方案,但我无法理解它。即使使用自定义视图,我仍然必须每次都与公共元素建立联系,不是吗?
任何想法,提示和建议都非常受欢迎。
答案 0 :(得分:1)
你所描述的完全没问题!你可以创建一个超类,我们称之为SuperVC
(它本身是UIViewController
的子类),向它添加IBOutlets
,然后创建SuperVC
的子类,让我们称它们为SubVC1
和SubVC2
,并在其中创建IBOutlets
。然后,在您的Storyboard中,您可以将相应的元素连接到所有这些IBOutlets
,只需确保在 Assistant Editor 中打开正确的文件即可(逻辑上,如果您连接{来自IBOutlets
的{1}}您需要在 Asisstant编辑器中打开SuperVC
,同样适用于SuperVC
和SubVC1
)。
顺便说一下,您也可以使用自定义SubVC2
执行此操作。在这里,您还可以选择是在Interface Builder中还是在代码中创建这些...实际上,在这个问题上没有技术限制:)