ios - Storyboard设计模式(分享或不分享)

标签 ios objective-c uistoryboard

这可能在很大程度上是优惠的,但我想知道是否有任何理由来决定一种或另一种方式。

使用 Storyboard进行设计时,您总是会得到许多 View Controller 。我正在研究一种严格的 MVC 方法的开销,其中每个 Controller 都在其自己的 UIViewController 子类中实现,并带有相应的 UIView 子类(甚至是 MVVM 的 View 模型类),这似乎很快就会失控——它不需要时间将数十个文件添加到项目中(许多文件功能很少)。另一种方法是将所有 View 链接到代表所有 Storyboard 功能的公共(public) Controller 。

我的倾向是,如果您没有任何单独的 View Controller 的大量 Controller 代码,那么将它们组合成一个不应该损害代码的可读性(并且可能会通过添加大量来增强它源文件)。另一方面,如果你有重要的功能要为任何特定的 View Controller 实现,那么它应该被封装在它自己的 Controller 中。

在大多数情况下,我会将所有 Controller 构建为尽可能可重用(封装在他们自己的自定义 UIViewController 子类中)。 Storyboard对此提出了一个有趣的看法,因为它们似乎是针对通常很少有入口点的 View 序列。

最佳答案

你的想法是正确的

  • 如果您在每个 VC(ViewController)中没有太多功能,它们会将您的所有代码组合到一个 VC 中。这种方法的唯一缺点是您将无法实现特定于 View 的代码,并且您将使用此通用 VC 的每个 View 都将执行相同的代码,无论是否需要。例如viewWillAppear 等中的代码
  • 同样,如果您对特定 View 有很多功能,那么最好将其放在自己的 VC
  • 下。
  • 这只是一个建议,如果您需要在多个 VC 之间使用一些通用代码逻辑,那么不要在相同代码的每个 VC 中进行复制和粘贴,而是将其转换为 Category 类型的方法,然后在需要的地方调用它。因此,仅在 1 个地方更改代码。

  • 更多的风险投资并不一定意味着糟糕的设计。在我看来,这种方式更容易维护。我的两分钱。 :-)

    关于ios - Storyboard设计模式(分享或不分享),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31102568/

    相关文章:

    ios - 如何让标签中的文本显示出来?

    ios - 如何将异常转换为 NSError 对象

    objective-c - 从捏合位置缩放在 CGContext 上绘制的图像

    iphone - Sharekit - 架构 i386 的 ndefine 符号 :

    IOS/ Storyboard : Images Disappear from identity inspector after lengthy Redos but still visible in Storyboard

    iphone - 清除删除按钮的背景色

    ios - AdMob 给出 fatal error (展开可选时发现 nil)

    ios - SQLite 表级加密

    ios - 在关闭其顶部的 View Controller 后如何处理初始 View Controller

    ios - 如何在 UITableViewController 中设置静态单元格的自动高度?