我对 MVC 和 iOS 开发有些陌生,我似乎无法调和 UI 样式如何适应这种范式。
我对 MVC 的看法是使用 Storyboard构建的,我可以通过 Xcode 的属性检查器应用原始样式,但任何更复杂的东西我都必须使用 Controller 来设置样式。例如:
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated]; // required
// set background color of view
[[self view] setBackgroundColor:[UIColor darkGrayColor]];
}
这似乎明显违反了 MVC,因为我在 Controller 代码中应用样式逻辑。我发现这类似于编写 HTML 应用程序,而不是使用样式表,我编写代码以在 JavaScript 中本地应用样式。这是 iOS 的弱点还是我做错了?
最佳答案
取自Apple's docs :
some controller objects might also tell a view object to change an aspect of its appearance or behavior
它确实有意义,因为 View 应该是被动的,并且仅将应用程序状态反射(reflect)为 UI, Controller 将“告诉” View 是否需要根据用户操作更改其某些内容。 (例如背景变化、控件的可见性等...)
关于ios - iOS 中的样式化 UI 对象是否违反了 MVC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17576382/