首页 > 解决方案 > MVC:自定义 UITableViewCell 是视图还是控制器,还是两者兼而有之?

问题描述

我曾经将 aCustomUITableViewCell.xib视为视图,将相应的CustomUITableViewCell.swift类视为表格视图单元格的控制器。

这个对吗?我偶然发现的一个 youtube 视频将课程视为视图:https ://youtu.be/n06RE9A_8Ks?t=177

编辑: 澄清问题:以下哪一项是视图和控制器?两者都被认为是视图吗?

标签: iosswiftcocoamodel-view-controller

解决方案


我绝对认为它是一个“视图”(就 MVC 而言)。它是一组逻辑(与 .xib 一起)处理 1 个特定的信息视图,而不是编排应用程序一般逻辑的某些方面。

出于同样的原因,我还认为 UIViewController 属于 MVC 的“视图”部分。当然,如果您在视图控制器中放入的业务逻辑比支持单个视图所需的要多得多,那么您的视图控制器就是 MVC 的某种组合。例如,如果您的视图控制器选择应用程序的下一个场景,那么您的视图控制器将参与控制器逻辑,它并没有真正遵循 MVC。但是,您的视图控制器被迫做很多与单一视图相关的工作,因为它负责一个单一的视图,并且视图工作实际上是在 UIViewController 而不是 UIView 中完成的。

因此,当您询问 MVC 中单元格视图类的立场时,如果它正在执行单视图工作,那么它就是“视图”。如果你混合了控制器工作或模型工作,那么你就混淆了 MVC 所支持的职责分离。


推荐阅读