【发布时间】:2013-07-08 17:19:16
【问题描述】:
我对 MVC 和 iOS 开发有些陌生,我似乎无法协调 UI 样式如何适应这种范式。
我的 MVC 视图是使用故事板构建的,我可以通过 Xcode 的属性检查器应用原始样式,但任何更复杂的事情我都必须使用控制器来设置样式。例如:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated]; // required
// set background color of view
[[self view] setBackgroundColor:[UIColor darkGrayColor]];
}
这似乎明显违反了 MVC,因为我在控制器代码中应用了样式逻辑。我发现这类似于编写 HTML 应用程序,而不是使用样式表,而是编写代码以在 JavaScript 中本地应用样式。这是 iOS 的弱点还是我做错了?
【问题讨论】:
-
您可以在代码中混合和匹配这两者。如果你愿意,你甚至可以在控制器中操作模型细节。 MVC 在该模式的一般准则中并未严格执行,但如果您想忠于该范例,您只需避免在 C 中使用 M 或 V。
-
有人可能会说风格是一种数据形式。由于控制器通常为视图提供数据,因此让控制器为视图提供样式是类似的。
标签: ios model-view-controller ios6 uiviewcontroller