ios - 在 viewDidLoad 中编写代码是否违反 MVC 架构?

标签 ios objective-c iphone

我正在从事一个客户项目。我在 ViewDidLoad 中编写了很多 View 自定义代码。我有数据存储和访问的模型。 该项目运行良好。他们聘请了一位新的 iOS 开发人员,他说该代码不符合 MVC 架构。对方问原因为何?他说 View 是在 viewDidLoad 内部创建的,它是类的 Controller ,因此它不是可接受的代码。当它的真正动态 View 无法使用 Storyboard 创建时我们该怎么办。

最佳答案

我的答案是

来自苹果文档

Controller Objects

A controller object acts as an intermediary between one or more of an application’s view objects and one or more of its model objects. Controller objects are thus a conduit through which view objects learn about changes in model objects and vice versa. Controller objects can also perform setup and coordinating tasks for an application and manage the life cycles of other objects.

我认为 Controller 有责任管理 View 的外观。

viewDidLoad中,最好在这里编写一次性 View 自定义代码。

但是如果你给一个 View 写了很多配置代码。我认为最好使用 UIView 的子类。这使您的代码清晰且易于调试和维护。

关于ios - 在 viewDidLoad 中编写代码是否违反 MVC 架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30367431/

相关文章:

iOS 上的 Iphone5/ios6.1.3 和 Facebook SDK 3.2.1 - com.facebook.sdk 设备上出现错误 2

ios - UIScrollView 中的 UIWebView,如 Apple Mail.app

ios - 在 UITableView 中检测键盘是否被拖动以关闭

ios - 设置UIButton alpha在iOS 7上无法正常工作。

ios - 自定义 map 样式 Google Map/MapKit

ios - 检测点击包含多个部分的 UITableView 的 UITableViewCell 中的按钮

iphone - UIImage 中的绘制区域无法正确识别

ios - 运行的应用程序使 iPhone5S 崩溃并强制硬重置,仅在第二次启动时出现错误 "failed to get task for process"

ios - avassetwriter 是否可以输出到内存

objective-c - iOS 从服务器获取数据