iphone - 容器 View Controller 与复杂的 View 层次结构

标签 iphone ios cocoa-touch

这是一个开放式问题,涉及在 iOS 应用程序中创建复杂 View 层次结构时的最佳实践。出于这个问题的目的,我将复杂的 View 层次结构定义为集成了多个模型和多个 View 的 View 层次结构。例如,在 iPad 上,您可能在左侧有一个 View ,它控制右侧 View 的内容。每个 View 可能有多个元素(按钮、表格 View 、手势、动画、行为等)。

当然,您可以将所有这些集成到一个 View Controller 中。但是,您可能会留下一个非常复杂的 View Controller ,它集成了几个松散相关的模型。或者,您可以将每个 View 分解为其各自的 View / Controller 对,并将它们添加到容器 View Controller 中。

就我个人而言,我更喜欢使用容器 View Controller ,因为它们允许我在服务于非常特定的目的时将我的精力集中在单个 View Controller 上。

您选择了哪种方法,为什么?

最佳答案

Defenatly 是“容器 View Controller ”。在我的公司,我们常说“保持简单和愚蠢”。所以我认为最好有一个 View、一个 ViewController、一个 Model 和一个 DataController。每个函数(最多)不超过 3 行代码,每行不超过 80 个字符。并且一个Class应该不再是400行。所以可以肯定的是,所有东西都在它们属于自己的地方。它很清楚在哪里完成了一些事情。

还有一个 Controller 只做一件事。因此,NewsletterOrderViewController 应该只从电子邮件和名称文本字段中获取值,并将它们传递给 WebServiceController。 在这里,每个函数和每个类都应该处于相同的抽象级别。 这是 NewsletterOrderViewController 的示例,该方法在按下按钮时调用函数,如:dataFromForm、sendDataToService。然后在 dataFromForm 内部,您可以调用 stringFromTextField 并在此方法中(最后)[sometextfield getText];。这是一个非常非常简单的例子,但我希望你能理解我想说的;)

当然这都是我个人的看法...

关于iphone - 容器 View Controller 与复杂的 View 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8718432/

相关文章:

iphone - 如何修复错误 'No memory available to program now: unsafe to call malloc'?

iphone - 用OpenGL ES替换这些OpenGL函数?

iphone - 核心数据迁移非常慢,为什么会发生这种情况?

iOS 应用程序在 iPhone 上崩溃,即使它在模拟器上运行

ios - 如何将 tabbarcontroller 添加到导航应用程序中

ios - View 如何在不使用依赖于框架的 intrinsicContentSize 的情况下根据其宽度的函数确定其高度?

iphone - 如何等待动画在 viewDidDisappear 中完成?

iphone - CATitledLayer 出现间歇性 EXC_BAD_ACCESS 异常

iphone - 在导航栏标题下方添加一行

ios - 我应该在 block 内使用哪个 NSAssertion?