首页 > 解决方案 > 我应该为弹出菜单使用单独的 UIViewController 吗?

问题描述

一个相当理论或抽象的问题......

我有一个带有视图的视图控制器(我们称之为 viewControllerA)(显然)。在显示视图时,如果用户按下特定按钮,将出现一个弹出菜单(想想按钮网格)。用户可以按下弹出菜单中的按钮来转换到另一个视图(由另一个视图控制器控制)。

我应该有一个单独的视图控制器来处理/管理弹出菜单还是应该“简单地”将弹出菜单实现为由同一视图控制器(即 viewControllerA)控制的视图?

非常感谢支持和反对每种方法的原因。

标签: iosuiviewuiviewcontroller

解决方案


我应该有一个单独的视图控制器来处理/管理弹出菜单吗?

我相信,这是更好的选择。您可以在情节提要上创建一个容器视图,该视图将具有一个更易于使用的单独控制器,然后是具有不同视图的巨大文件。

您将获得什么:

  1. 具有单一职责的结构良好的文件
  2. 更容易测试和调整这两个元素

我应该“简单地”将弹出菜单实现为由同一视图控制器控制的视图吗?

在我看来,这种方法没有任何优势。在这种情况下,您将:

  1. 违反单一责任原则
  2. “简单” - 意味着您将拥有 2 个不同的视图,它们的生命周期在一个控制器中管理(只是变得更难)
  3. 最有可能的是 Massive View Controller

如果你不使用任何特定的架构模式,也许你应该看看这里


推荐阅读