什么时候应该在同一个视图控制器中使用多个视图

时间:2012-10-23 15:17:51

标签: objective-c ios view uiview uiviewcontroller

何时应该在同一个视图控制器中创建新视图,何时应该创建新的视图控制器?

3 个答案:

答案 0 :(得分:0)

以下是指导原则而不是规则。

当您想根据某些参数模块化代码时(我根据功能进行操作),您需要创建一个新的视图控制器。例如。 DashboardViewControllerSettingsViewController等。

DashboardViewController内,我们可以做很多事情。每个都可能需要view来表示。

答案 1 :(得分:0)

这是一个通用的问题,不知道你想要做什么很难告诉你如何创建一个应用程序。顺便说一句,一点点(和简单)的解释就是这样。

控制器必须实现应用程序的逻辑,它们必须“控制”应用程序的特定功能。 视图必须显示控制器要向用户显示的内容。

因此,如果你想用某种逻辑(用户检查/数据加载等)创建一些东西,你必须创建一个控制器,如果你想向用户展示你可以创建一个视图的东西。

1或2个控制器之间的区别取决于您的应用程序,您必须创建一种逻辑使用1,否则如果您有一个具有不同功能的大型应用程序,则创建N个控制器。

答案 2 :(得分:0)

我认为这比客观更主观。在我所拥有的一个项目中,需要在需要更改选项卡式导航时创建一个新的控制器,或者我最终在我的onInit方法中使用if / else来定义选项卡。

在其他情况下,它可能就像问自己这是否是一个逻辑分组一样简单。例如。我有一个UserController管理添加/编辑/删除用户。我应该使用该控制器登录/注销/忘记密码,还是应该创建一个AuthController?就个人而言,我会将它分离为AuthController,因为UserController的安全性应该只是管理员,而AuthController允许任何人尝试登录。然后,当用户登录时,您是否为其配置文件执行UserController或创建ProfileController,因为再次存在权限差异。任何登录用户都可以管理自己的个人资料,但这并不意味着他们应该可以访问我的UserController。

但是,您可以将add / edit / delete / profile / login / logout / forgotPassword视图放入单个控制器中,并且只基于每个视图处理权限,这不会是“错误的”。只要您将业务逻辑保留在模型中并从控制器中移出,并尽可能多地保留逻辑......那么您已经处于领先地位并且在您需要时不会重构太难了。

如果你发现自己在onInit中做了很多if / else,你正在根据正在加载的方法进行初始化...这对我来说是一个标志,你应该考虑创建一个单独的控制器。 / p>