创建具有相同布局但唯一内容的多个UIViewControllers

时间:2016-01-17 18:54:19

标签: ios swift uiviewcontroller

我在iOS和Android上看到的很多应用程序都会有不同字符的页数,但所有页面布局都是相同的。 Here is an example of an app that does this.

现在我确定他们不会将每个页面都写成UIViewController(如果是用于iOS),那么制作这样的东西最好的方法是什么?它们是数据库中的唯一数据,然后是为每个单独的视图控制器读取它吗?

如果可能,请将其与Swift联系起来,因为这就是我正在学习的内容。

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题...... 您通常有几个不同的屏幕(或ViewControllers),但其中显示的数据是动态的。 您可以实例化具有不同数据的类(VC)并加载不同的图像,文本和每个“屏幕”将是唯一的(如果需要)。 您可以使用数据库来存储要显示的数据,也可以直接在内存数据结构中管理数据,例如,使用字典的数组。

希望它帮助了你。

答案 1 :(得分:0)

我不能代表Android,但是对于iOS,你会想要子类一个UIViewController。这将允许您创建一个具有所有屏幕所需的所有常用功能的类(布局,配色方案,按钮等)。

您还需要将此子类配置为接受您希望在每个屏幕(角色名称,图像等)上更改的属性的输入。 You could easily do this through properties and overriding their setters.或者您想再次查看子类,以进一步覆盖基类的功能。

我建议您好好了解Apple Swift documentation on Inheritance & Subclassing.

就视图控制器的数据输入(字符名称,图像等)而言,它实际上取决于这些数据的复杂程度。

如果它只是简单的纯文本和资源名称,那么您希望将它们存储在可以加载到代码中的property list file.plist)中。很容易NSDictionaryNSArrayThis answer should help you get started out how to read/write plist files.

更复杂的数据可能需要通过Core Data或外部库来使用数据库。但是,我通常更喜欢使用可以通过NSKeyedArchiver.

写入磁盘的自定义存储对象