【问题标题】:Create multiple UIViewControllers with the same layout, but unique content创建多个具有相同布局但内容独特的 UIViewController
【发布时间】:2016-01-17 18:54:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios swift uiviewcontroller


    【解决方案1】:

    我不能代表 android,但是对于 iOS,您将寻找 子类 UIViewController。这将允许您创建一个类,该类具有所有屏幕所需的所有通用功能(布局、配色方案、按钮等)。

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

    建议你好好看看Apple Swift documentation on Inheritance & Subclassing.

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

    如果只是简单的纯文本和资源名称,您需要考虑将它们存储在 property list file (.plist) 中,您可以很容易地将其作为 NSDictionaryNSArray 加载到您的代码中. This answer should help you get started out how to read/write plist files.

    更复杂的数据可能需要使用数据库,通过Core Data 或外部库。但是,我通常更喜欢使用可以写入磁盘的自定义存储对象 NSKeyedArchiver.

    【讨论】:

    • 感谢您提供非常有见地的有用资源链接!正是我需要的!
    【解决方案2】:

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

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 2015-10-05
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多