iPhone开发和使用单独的模型文件?

标签 iphone model-view-controller uiviewcontroller interface-builder

随着我不断学习 iPhone/IOS 开发,我阅读了很多有关 MVC 的内容。然而,在到目前为止我看到的各种示例文件中,我并没有真正看到模型、 View 和 Controller 的单独类?

我应该如何具体了解 MVC 在最佳实践开发的 iPhone 应用程序中的实际应用?例如,也许一个基于导航 Controller 和一些 TableView 等。

例如:

  • 每个“iPhone UI Controller ”是否应该有一个单独的模型、 View 和 Controller - 请注意,从我所看到的情况来看,iPhone 开发中似乎有 1 页 == 1 UI Controller ,那么我的问题每个 UI Controller 都应该有自己的 View 文件和模型文件吗?

  • 鉴于 Interface Builder 和 NIB 是事物的重要组成部分,NIB 在多大程度上被视为 MVC 模式的一部分?例如NIB 的创建是否有效地实现了“ Controller ”和“ View ”,让您为模型创建一个单独的类(在单独的文件中)?

  • 当您获得由多个应用程序页面(例如 ListView 、编辑 View 等)共享/使用的共享数据(或共享模型 - 例如项目列表)时会发生什么 - 在这种情况下是这样在我看来,您将拥有 1 个模型,但然后在不同的页面(即 View 和 Controller )中重用此模型实例。

希望这是有道理的......

最佳答案

您将通过使用对象和工具的典型用途来遵循 MVC。 UIView 对象用于呈现数据和接收输入(View)。 UIViewController 响应事件并在数据模型和 UIView 层次结构( Controller )之间来回路由数据。您的数据模型位于您想要的任何位置,有时与 UIViewController 子类组合在一起,有时作为单例类(模型)出现在应用程序中。当您将共享数据模型指定为单例类时,任何需要它的类都可以从应用程序中的任何位置访问它。通过维持这种分工,您的应用程序将趋于组织良好和模块化,并且您可以维护/扩展一个方面,而无需重写程序的所有其他方面。

界面构建器是一种用于直观地构建应用程序的 View 层次结构(以及某种程度上的控件层次结构)的工具。

关于iPhone开发和使用单独的模型文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5074336/

相关文章:

javascript - 删除显示 HTML 字符的 elementFromPoint()

c# - 使用 AutoFixture 对 Html 助手进行单元测试

c++ - 数据数组返回问题,覆盖

ios - 两个独立的 UIViewControllers 上的 UITabBarControllerDelegate - Swift

ios - 如何加载所有 View Controller Storyboard,但跳过自然顺序并直接转到特定 View ?

iPhone SDK : Block Animation Ignore Error with Curved Path

iphone - 在 MFMailComposeViewController 中获取收件人列表

iphone - UIButton - 高亮状态下的圆角

model-view-controller - Node.JS/Mongoose/Express -> 对象没有方法 "findAll"

ios - iPhone,iOS 8 : How to presentViewController smaller than original view controller?