2010-03-19 32 views
1

在Interface Builder中...当我将VIEW拖到文档窗口中...然后双击它时...它打开并显示VIEW窗口。 (如预期)View或ViewController ...都是视图?

...但是当我将VIEW CONTROLLER拖入文档窗口中...然后双击它时...它也会打开并显示VIEW窗口。 (它上面写着“view”。)

对吗? (或者我完全误解了什么?)

我以为VIEW是绘制/拖拽东西的实际对象。没有?

我以为VIEW CONTROLLER只是代码为您的观点。没有?

回答

2

我没有使用Interface Builder的经验,但是控制器对象提供了将应用程序的数据桥接到视图所需的自定义逻辑。在iPhone应用程序中,视图控制器是用于呈现和管理应用程序视图的特定类型的控制器对象。

每个ViewController都有一个与之关联的View属性,这是您在界面构建器中看到的属性。

存储在此属性中的视图表示视图控制器视图层次结构的根视图。无论何时在屏幕上显示视图控制器(无论是模态还是视图控制器界面的一部分),该视图都会被检索并显示在应用程序窗口中。该属性的默认值为零

每个视图控制器对象是其视图的唯一所有者。您不能将相同的视图对象与多个视图控制器对象关联。

0

苹果希望您在开发应用程序时遵循模型 - 视图 - 控制器系统,它非常直接且合乎逻辑。

  • 该模型是你的应用程序的核心。它处理数据库,网络连接和任何你需要的。它基本上是您在Xcode中创建的自定义类。
  • 视图是你的应用程序和你的用户之间的接口。您可以在Interface Builder中创建它们,并将它们放入NIB文件(最好每个文件一个视图)。
  • 控制器是视图和模型之间的粘合剂。它根据从模型(如数据库)得到的内容定义视图的行为和状态(启用按钮,标签内容等)。它还根据从管理员(控制)的视图接收的事件对模型执行操作,如更改数据库中的记录或更改对象中的变量。

所有这一切背后的想法是,该模型可以在最小的修改中用于每个平台。

每个控制器应该链接到一个视图和一个视图,如表格(UITableViewController)或屏幕视图(UIViewController)。您将所需的控制器子类化,然后将其添加到与其关联的视图的NIB中。这就是你如何做到的:

  1. 在NIB中,选择文件的所有者。
  2. 在标识检查器中,将类设置为您在项目中创建的视图控制器。
  3. 在您的自定义控制器类中,为需要访问的关联视图中的每个视图(例如deleteButton)创建IBOutlet。创建并合成每个插座的属性。
  4. 为您想注册的每个事件创建IBAction s(例如addButtonClicked)。
  5. 在NIB中,用鼠标右键从文件所有者拖动一行到需要的插座视图,然后选择要连接的连接。重复,直到所有的IBOutlet都正确连接。
  6. 从您要将事件注册到文件所有者的视图中拖动带有辅助鼠标按钮的行,然后选择要创建的连接。重复,直到所有的IBAction都正确连接。
  7. 编写控制器的代码。
相关问题