【问题标题】:How to implement two similar views efficiently in UISegmentedControl如何在 UISegmentedControl 中高效地实现两个相似的视图
【发布时间】:2018-10-05 23:44:55
【问题描述】:

我在两个分段控件中显示了两个完全相同的视图。请参考下图。这两个视图之间的区别在于我发送到后端以获取值和标题的参数。甚至返回的值都是一样的。

选择段时,我已经提到了一些教程,哪些教程从一个视图中循环到另一种视图。

我最终得到了两个具有完全相同代码的文件。如何优化这个实现,以便我可以只用一段代码来实现。

包含的两个 VC 具有完全相同的代码来从后端获取值并显示。我只有一个在两个 VC 中都使用过的函数来获取,但还有其他代码部分,例如 Tableview 委托和其他代码,这两者都是通用的。

在情节提要中,两者也是重复的。

有没有办法让它更有效率?

【问题讨论】:

  • 让两个视图控制器都继承自一个共同的超类?或者甚至使用同一个视图控制器类的两个实例?不可能具体,因为 you 没有具体说明 - 你的问题是关于代码的,但你显示了 zero 代码。
  • 你可能有兴趣阅读class inheritance的代码复用策略。

标签: ios swift uisegmentedcontrol


【解决方案1】:

这可能是让您的两个视图控制器成为公共超类的子类的情况。

或者更简单:让它们成为 same 视图控制器类的两个实例,它知道要做什么,因为您在创建时传递一个参数告诉它要做什么。

例如,我的 Albumen 应用使用了四个视图控制器,它们的区别主要在于它们对用户音乐库执行的查询。因此,我选择让它们成为 one 视图控制器类的四个实例,并带有一个枚举属性,说明它是哪个查询,以及通过该枚举上的 switch 语句确定的任何其他不同的功能。

【讨论】:

    【解决方案2】:

    我认为您只需要创建 1 个 VC(在 IB 和代码中),将所有逻辑都放入其中

    1- 将它的一次实例/容器添加到 MainVC 并管理选择片段以重新加载内容的过程(推荐)

    2- 将它的 2 个实例添加到 MainVC 并在选择段时管理隐藏/显示

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-27
      • 2017-03-21
      • 1970-01-01
      • 2013-11-07
      • 2021-06-03
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多