ios控制交互的实现——Start Developing iOS Apps Today——从今天开始开发IOS(IOS7版)系列源文档翻译(九)

来源:互联网 发布:bootp端口号 编辑:程序博客网 时间:2024/05/18 02:46

布局你的用户界面之后,你需要让用户与其进行交互。这是控制器进来控制器支持你的视图通过响应用户操作和填充的意见与内容。控制对象是一个管道,通过它的视图了解变化中的数据模型,反之亦然。视图是通过应用程序的控制器通知变化模型数据,以及控制器进行通信的用户发起的更改,例如,文本在文本字段到对象模型输入。无论他们是响应用户操作或定义导航,控制器,实现您的应用程序的行为。

视图控制器

你已经建立了一个基本的视图层次之后,你的下一个步骤是控制视觉元素和响应用户输入。在iOS应用程序,您可以使用一个视图控制器(UIViewController)管理与子视图的层次结构中的内容视图。

视图控制器不是视图层次结构的一部分,它不是在你的界面元素。相反,它在管理层次结构的视图对象,并为他们提供行为。你建立你的故事板的每个内容视图层次需要一个相应的视图控制器,负责管理的界面元素和响应用户交互执行任务。这通常意味着编写自定义UIViewController子类为每个内容视图层次结构。如果你的应用中有多个内容的看法,你使用不同的自定义视图控制器类中的每个内容视图。
视图控制器扮演许多角色。他们的坐标信息的应用程序的数据模型,并且显示该数据,管理其内容的意见的生命周期,以及处理设备时,旋转方向改变视图之间的流动。但也许是他们最明显的作用是对用户的输入作出响应。
你还可以使用视图控制器从一种类型的内容执行转换到另一个。因为iOS应用程序有一个有限的空间中显示的内容,视图控制器提供必要从一个视图控制器中删除的意见,并将其与另一个人的意见代替的基础设施。
要定义你的应用程序的交互,让你的视图控制器文件在您的故事情节的意见交流。您可以通过定义通过行动和出口的脚本和源代码文件之间的连接做到这一点。

动作

一个动作是一块一个链接到某种事件可能发生在你的应用程序代码。当该事件发生时,该代码被执行。你可以定义一个动作,从操纵一个数据一事无成,以更新用户界面。你用行动来推动,以响应用户或系统事件,您的应用程序的流程。
通过创建和实施与IBAction返回类型和发送者参数的方法定义操作。
- (IBAction)restoreDefaults:(id)sender;

sender参数指向该负责触发动作的对象。该IBAction返回类型是一个特殊的关键字,它就像void关键字,但它表明,该方法是,你可以从在Interface Builder(这就是为什么关键字具有IB前缀)您的脚本连接到一个动作。您将了解更多有关如何将IBAction操作链接到一个元素在你的教程故事情节:Storyboard。

出口

出口提供了一种从接口的您添加到情节提要,从源代码文件中的对象引用的对象。您可以创建一个出口通过从你的脚本中的特定对象控件拖动到视图控制器文件。这将创建的对象在你的视图控制器文件,它可以让你从代码在运行时访问和操纵该对象的属性。例如,在第二个教程中,您将在您的todolist的应用程序创建一个出口为文本字段,以便能够访问该文本字段内容中的代码。


出口被定义为IBOutlet属性。
@property (weak, nonatomic) IBOutlet UITextField *textField;

该IBOutlet关键字告诉Xcode中,您可以从界面生成器连接到这个属性。您将了解更多有关如何从一个故事板连接的电源插座上的源代码教程:Storyboard。

控件

控件是一个用户界面对象,如按钮,滑块,或切换用户操作与内容互动,提供输入,在一个应用程序浏览,并执行您所定义的其他行动。控件提供一种方法,您的代码从用户界面接收消息。
当用户与控件交互,控制事件被创建。控制事件代表的各种物理手势,用户可以对控件,如起重从控制手指,用手指拖动到一个控件和一个文本字段内着陆。

有事件类型三大类:

1.触摸和拖动事件。触摸并当用户与带有触摸或拖动控件交互发生的拖动事件。有几种可用的触摸事件阶段。当用户最初触摸了手指上的一个按钮,例如,触摸向下内部事件触发,如果用户拖动了按钮时,相应的拖动事件被触发。触摸里面当用户举起手指离开键,同时仍然在按钮的边缘的范围内被发送。如果用户已经抬起手指,从而有效地消除了之前的触摸拖动的按钮外的手指,触摸外间事件被触发。
2.编辑事件。当用户编辑一个文本字段编辑发生的事件。
3.值变更事件。当用户操纵的控制,使其发出一系列不同的值的值发生改变的事件。
当你定义的互动,知道这是与每个控件关联在你的应用程序,然后进行控制的目的,明显给用户的界面的操作。

导航控制器

如果你的应用中有多个内容视图层次,你需要能够在它们之间进行转换。对于这一点,你将使用一种特殊类型的视图控制器:一个导航控制器(UINavigationController ) 。导航控制器管理转变前后通过一系列的视图控制器,当用户浏览电子邮件帐户,收件箱中的邮件,并在邮件的iOS应用程序的单个电子邮件等。
该组由一个特定的导航控制器管理视图控制器称为它的导航堆栈。导航堆栈是一个后进先出的自定义视图控制器对象的集合。添加到堆栈中的第一项将成为根视图控制器,并且永远不会从堆栈中弹出。其他视图控制器可以推或弹出导航堆栈。
虽然导航控制器的主要工作是管理你的内容视图控制器的演示,它也负责对自己的自定义视图。具体地讲,它提出了一个导航栏,认为在该情况下提供有关用户的地方在导航层次结构,其中包含一个后退按钮和其他按钮可以自定义屏幕的顶部。这是添加到导航堆栈的每个视图控制器提出了这个导航栏。你是负责配置导航栏。
你一般不用做任何工作,弹出视图控制器从导航堆栈的;由导航控制器提供的后退按钮为您处理此。但是,你必须手动推视图控制器入堆栈。您可以使用故事板做到这一点。

使用Storyboard来定义导航

到目前为止,您已经了解了如何使用Storyboard将在您的应用程序创建一个单一的内容画面。现在,您将了解如何使用它们来定义你的应用程序的多个场景之间的流动。
在第一个教程中,您曾与故事板有一个场景。在大多数的应用程序,一个Storyboard是由一个序列场景,每一个代表一个视图控制器和视图层次。在源和目的地:场景是由segues连接,它代表了两个视图控制器之间的过渡连接。


有几种类型的塞格斯您可以创建:


Push。推送Segue添加目标视图控制器到导航堆栈。推送Segue仅可用于在源视图控制器被连接到导航控制器。
Modal。模态Segue仅仅是一个视图控制器提出另一个控制器模态,需要用户返回到应用程序的主流程之前所提出的控制器上执行一些操作。模态视图控制器不会被添加到导航堆栈,相反,它通常被认为是呈现视图控制器的孩子。在呈现视图控制器负责贬创建和呈现模式视图控制器。
Custom。你可以通过继承UIStoryboardSegue定义您自己的自定义转换。
Unwind。退绕塞盖向后移动一个或多个Segue给用户返回一个视图控制器的现有实例。您可以使用展开Segue来实施逆向导航。
代替Segue的,场景也可以通过一个连接关系。例如,有导航控制器及其根视图控制器之间的关系。在这种情况下,该关系表示根视图控制器由导航控制器的遏制。
当您使用Storyboard来规划用户界面为你的应用程序,它重要的是要确保的视图控制器中的一个被标记为初始视图控制器。在运行时,这就是视图控制器,其内容就会被展示在第一时间应用程序启动并从中你可以转换到其他视图控制器内容的视图是必要的。
现在,你已经学会了用视图和视图控制器在故事板的基础知识,是时候把这些知识转化为你的todolist的应用在未来的教程。
3 0