ios - iOS 中的样式化 UI 对象是否违反了 MVC?

标签 ios model-view-controller ios6 uiviewcontroller

我对 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/

相关文章:

model-view-controller - DAG(有向无环图)- QAbstractItemModel

model-view-controller - "numerical rounding"在 View 中还是在模型中?

ios - 为菜单重用静态 UIViewController 代码的正确方法

iphone - iOS 6 应用程序运行在 iOS 7 风格遵守

iphone - 带有部分、不连续填充区域的进度条 - iOS

ios - 在iOS库中使用哪种格式播放视频或音频?

ios - 根据选择的行将数据从 UITableView 传递到另一个 ViewController

javascript - 自定义控件中的双向绑定(bind)在 SAPUI5 中不起作用

ios - iPhone 在表格中水平滑动

ios - 如何快速检查 UIImage 是否为空?