创建自定义视图控制器
你已经完成了所有这些配置,而无需编写任何代码。配置完成加载的待办项目视图控制器需要一些代码,虽然,你需要一个地方来存放它。眼下Xcode中配置了两个附加的待办项目视图控制器和表视图控制器作为通用视图控制器。要为您的自定义代码的地方,你需要创建子类为每个这些视图控制器,然后配置界面使用这些子类。
首先,你解决了附加的待办项目视图控制器的场景。自定义视图控制器类将被称为XYZAddToDoItemViewController ,因为这个视图控制器将控制添加新项目到您的待办事项列表中的一幕。
创建UIViewController的子类
1.选择File > New > File(或按Command -N ) 。
2.在出现的对话框的左侧,选择的iOS下的可可触摸的模板。
3.选择的Objective- C类,然后单击下一步。
4.在类领域, XYZ前缀后面键入AddToDoItem 。
5.选择的UIViewController在弹出菜单中的“子类” 。
类标题更改为“ XYZAddToDoItemViewController 。 ” Xcode中帮助你通过使从你创建一个自定义视图控制器的命名清楚。这是伟大的,所以离开新的名称不变。
6.确保“Targeted for iPad”和“With XIB for user interface”选项选中。
7.单击下一步。
8.保存位置将默认为您的项目目录。离开那个原样。
9.本集团选择将默认为您的应用程序的名称, todolist的。离开那个原样。
10.目标部分将默认为具有用于您的应用程序未选中你的应用选择和测试。这是完美的,所以离开了原样。
11.单击创建。
首先,你解决了附加的待办项目视图控制器的场景。自定义视图控制器类将被称为XYZAddToDoItemViewController ,因为这个视图控制器将控制添加新项目到您的待办事项列表中的一幕。
创建UIViewController的子类
1.选择File > New > File(或按Command -N ) 。
2.在出现的对话框的左侧,选择的iOS下的可可触摸的模板。
3.选择的Objective- C类,然后单击下一步。
4.在类领域, XYZ前缀后面键入AddToDoItem 。
5.选择的UIViewController在弹出菜单中的“子类” 。
类标题更改为“ XYZAddToDoItemViewController 。 ” Xcode中帮助你通过使从你创建一个自定义视图控制器的命名清楚。这是伟大的,所以离开新的名称不变。
6.确保“Targeted for iPad”和“With XIB for user interface”选项选中。
7.单击下一步。
8.保存位置将默认为您的项目目录。离开那个原样。
9.本集团选择将默认为您的应用程序的名称, todolist的。离开那个原样。
10.目标部分将默认为具有用于您的应用程序未选中你的应用选择和测试。这是完美的,所以离开了原样。
11.单击创建。
现在,您已经创建了一个自定义的视图控制器子类,你需要告诉你的故事板来使用,而不是通用视图控制器自定义类。故事板文件是可以被你的应用程序在运行时使用对象的配置。该应用程序机械是足够聪明来代替您的自定义视图控制器的故事情节开始与通用视图控制器,但是你需要告诉脚本是这就是你想要的。
识别您的类作为视图控制器的一个场景
1.在项目导航器中,选择Main.storyboard 。
2.如有必要,打开大纲视图图像:
3.在大纲视图中,选择“视图 - 控制器 - 添加任务项目”视图控制器。
按显示三角形旁边的“View Controller – Add To-Do Item”的景象展现在你的场景中的对象。第一个应该是视图控制器。单击以选中它。请注意,现场排已经从视图控制器排一个不同的图标。
4.在公用事业领域
身份检查显示在工具区域的顶部,当你从左侧点击第三个按钮。它可以让你编辑一个对象在你的脚本特性有关该对象的身份,比如它是什么类。
5.在身份检查器中,打开旁边的Class选项的弹出式菜单。
你会看到所有的视图控制器类的Xcode知道的清单。最后一个列表中的应该是你的自定义视图控制器,XYZAddToDoItemViewController。选择它来告诉Xcode中使用您的视图控制器的这一幕。
你会看到所有的视图控制器类的Xcode知道的清单。最后一个列表中的应该是你的自定义视图控制器,XYZAddToDoItemViewController。选择它来告诉Xcode中使用您的视图控制器的这一幕。
在运行时,你的脚本将创建一个XYZAddToDoItemViewController实例 ,您的自定义视图控制器子类,而不是通用的UIViewController 。请注意, Xcode中改变了你的附加待办事项项目视图控制器的场景的描述从“View Controller – Add To-Do Item”到“Add To Do Item View Controller – Add To-Do Item”的Xcode知道你'现在重新使用自定义视图控制器的这一幕,和它解释自定义类的名称,使之更容易理解什么是在脚本怎么回事。
现在,视图控制器上做同样的事情。
现在,视图控制器上做同样的事情。
要创建的UITableViewController的子类
1.选择File > New > File(或按Command -N ) 。
2.在左侧,选择iOS的下可可触摸,然后选择Objective-C类。如果你还没有,因为在本教程的最后一个步骤中创建的任何类,它可能已经为您选择。
3.单击下一步。
4.在类字段中,键入todolist的。请注意, Xcode中把插入点放在某某,你的类的前缀,和ViewController ,事情要创建的类型之间。
5.在弹出菜单中的“Subclass of”选择的UITableViewController 。
6.确保“目标为iPad ”和“厦门国际银行与用户界面”选项选中。
7.单击下一步。
8.保存位置将默认为您的项目目录。离开那个原样。
9.本组选项将默认为您的应用程序的名称, todolist的。原样离开。
目标部分将默认为具有用于您的应用程序未选中你的应用选择和测试。这是完美的,所以离开了原样。
10.单击创建。
再一次,你需要确保配置您的自定义表视图控制器XYZToDoListViewController 在你的Storyboard。
配置您的Storyboard
1.在项目导航器中,选择Main.storyboard 。
2.如有必要,打开大纲视图。
3.在大纲视图中,选择表视图控制器,并打开身份检查图像:在公用事业领域.. / Art/inspector_identity_2x.png 。
4.在身份检查器中,从旁边的Class选项的弹出式菜单中选择XYZToDoListViewController 。
现在,您就可以自定义代码添加到您的视图控制器。
解开segue导航回原来的场景
除了推动(push)和模态(model)segue,Xcode中提供了一个)解开(unwind) segue。这个segue允许用户从一个给定场景回到以前的场景,并提供一个地方给你补充一点,被执行时,这些用户场景之间浏览你自己的代码。您可以使用解开segue从XYZAddToDoItemViewController到XYZToDoListViewController导航回。
一个解开segue是通过添加一个动作方法到目标视图控制器(您想解开的视图控制器)创建的。可以解开到一个方法必须返回一个动作(IBAction),并采取在Storyboard segue(UIStoryboardSegue)作为参数。因为你想放松回XYZToDoListViewController,你需要用这种格式的XYZToDoListViewController执行添加操作方法。
解开(unwind)回到XYZToDoListViewController
1.在项目浏览器中,打开XYZToDoListViewController.m。
2.添加下面的 @implementation行执行下面的代码:
一个解开segue是通过添加一个动作方法到目标视图控制器(您想解开的视图控制器)创建的。可以解开到一个方法必须返回一个动作(IBAction),并采取在Storyboard segue(UIStoryboardSegue)作为参数。因为你想放松回XYZToDoListViewController,你需要用这种格式的XYZToDoListViewController执行添加操作方法。
解开(unwind)回到XYZToDoListViewController
1.在项目浏览器中,打开XYZToDoListViewController.m。
2.添加下面的 @implementation行执行下面的代码:
- - (IBAction)unwindToList:(UIStoryboardSegue *)segue
- {
- }
现在,离开这个方法的实现为空。稍后,您将使用这个方法来从XYZAddToDoItemViewController检索数据,以将项目添加到您的待办事项列表。
通过在源视图控制器,XYZAddToDoItemViewController的停靠退出图标的操作:要创建的展开SEGUE,取消和完成按钮链接到unwindToList。
链接按钮到unwindToList:action
1.在项目导航器中,选择Main.storyboard。
2.在画布上,按下Control键拖拽取消按钮在加载的待办项目现场对接退出项目。
如果您看不到退出项目在现场对接,而是看到现场的描述,点击放大图片:
按钮,在画布上,直到你看到它。
出现一个菜单,在拖动结束的位置。
3.选择unwindToList :从快捷菜单中。
4.这就是你刚才添加到XYZToDoListViewController.m文件的操作。这意味着,当被窃听的取消按钮, SEGUE会放松,这个方法就会被调用。
在画布上,按下Control键拖拽完成按钮,在XYZAddToDoItemViewController现场坞退出项目。
4.选择unwindToList :从快捷菜单中。
出现一个菜单,在拖动结束的位置。
3.选择unwindToList :从快捷菜单中。
4.这就是你刚才添加到XYZToDoListViewController.m文件的操作。这意味着,当被窃听的取消按钮, SEGUE会放松,这个方法就会被调用。
在画布上,按下Control键拖拽完成按钮,在XYZAddToDoItemViewController现场坞退出项目。
4.选择unwindToList :从快捷菜单中。
请注意,您所使用的相同行动都取消和完成按钮。在接下来的教程中,您将在两种不同的情况之间,当你编写代码来处理展开SEGUE区分。
注意:现在,运行你的应用程序。在运行之前,你看到一个表,视图,但在它没有数据。您可以点击添加按钮,并从XYZToDoListViewController导航到XYZAddToDoItemViewController 。您可以点击取消和完成按钮导航回表视图。
那么,为什么没有数据显示?表视图会得到的数据静态或动态两种方式。当一个表视图的控制器实现所需的UITableViewDataSource方法,表视图要求其视图控制器的数据显示,无论静态数据是否已配置在Interface Builder 。如果你看看XYZToDoListViewController.m ,你会发现,它实现了三个方法, numberOfSectionsInTableView : ,实现代码如下: numberOfRowsInSection :和实现代码如下:cellForRowAtIndexPath : 。你可以得到你的静态数据,通过注释掉了这些方法的实施再次显示。来吧,尝试了这一点,如果你喜欢。