通过添加Segue浏览下一页
你已经在Storyboard中配置两个视图控制器,但有它们之间没有联系。我们通过Segue来联系两个场景,也就是场景之间的转换被称为Segue。
在创建一个Segue之前,你需要配置场景。首先,在导航控制器你需要封装XYZToDoListViewController。自定义交互的导航控制器提供了一个导航栏和跟踪导航堆栈。你要添加一个按钮,用于过渡到XYZAddToDoItemViewController场景中(scene)。
将导航控制器添加到您的表视图控制器:
1.在大纲视图中,选择表视图控制器。
2.视图控制器选择之后,选择Editor > Embed In > Navigation Controller。
1.在大纲视图中,选择表视图控制器。
2.视图控制器选择之后,选择Editor > Embed In > Navigation Controller。
Xcode中添加新的导航控制器——你的Storyboard,设置初始场景给它,并创建新的导航控制器和现有的表视图控制器之间的关系。在画布上,如果你选择连接两个场景的图标,你会看到它的根视图控制器的关系。这意味着视图导航栏下方显示的内容将是你的表视图。初始场景设置到导航控制器,因为导航控制器拥有所有的内容,你会在你的应用程序显示的容器中的待办列表和附加的待办项场面两者。
注意:运行您的应用程序。上面的表格视图中,您现在应该看到额外的空间。这是由导航控制器提供的导航栏。
现在,添加含一个标题(到待办事项列表)和一个按钮(添加额外的待办项目)的导航栏。
配置导航栏
1.在大纲视图或画布上,选择下表视图控制器导航项。
导航栏得到他们的标题会从导航控制器当前显示 - 它们本身并不具有一个标题视图控制器。你用你的待办事项清单(表视图控制器)的导航项目,而不是直接在导航栏上设置了设置标题。
2.在属性检查器中,输入标题字段我的待办事项列表。
3.如有必要,打开对象库。
4.一个栏按钮项目拖曳从列表中最右侧的表格视图控制器的导航栏。
一个包含文本“Item”按钮,将出现在您拖动栏按钮项目。
5.在大纲视图或画布上,选择栏按钮项目。
6.在属性检查器中,找到在栏按钮项目部分的标识符选项。选择添加的标识符弹出菜单。
该按钮将变为一个添加按钮(+ ) 。
配置导航栏
1.在大纲视图或画布上,选择下表视图控制器导航项。
导航栏得到他们的标题会从导航控制器当前显示 - 它们本身并不具有一个标题视图控制器。你用你的待办事项清单(表视图控制器)的导航项目,而不是直接在导航栏上设置了设置标题。
2.在属性检查器中,输入标题字段我的待办事项列表。
3.如有必要,打开对象库。
4.一个栏按钮项目拖曳从列表中最右侧的表格视图控制器的导航栏。
一个包含文本“Item”按钮,将出现在您拖动栏按钮项目。
5.在大纲视图或画布上,选择栏按钮项目。
6.在属性检查器中,找到在栏按钮项目部分的标识符选项。选择添加的标识符弹出菜单。
该按钮将变为一个添加按钮(+ ) 。
注意:运行您的应用程序。导航栏现在应该有一个标题,并显示一个Add按钮。按钮没有做任何事情。你还在下面处理。
你要添加按钮,弹出插件待办事项项目场景(add-to-do-item scene)。场景已经配置,它是您创建的第一个场景,但它没有连接到其他场景。 Xcode中可以很容易地配置添加按钮弹出另一个场景。
配置的添加按钮
1.在画布上,选择Add按钮。
2.按住Control键拖动从按钮到附加待办事项项目视图控制器。
简短的目录标记的Segue动作出现快捷菜单中拖动结束的位置。
这是Xcode中如何让你选择什么类型的Segue应使用从待办事项列表,当用户点击添加按钮来转换到外接的待办项目视图控制器。
3.从快捷菜单中的“push”。
Xcode中设置了segue并配置附加的待办项目视图控制器将显示在导航控制器 - 你看到在界面生成器的导航栏。
这个时候,你可能会发现在你的项目中一些的警告。来吧,打开导航仪问题,看看有什么是错的。
这个时候,你可能会发现在你的项目中一些的警告。来吧,打开导航仪问题,看看有什么是错的。
因为你添加的加载项的待办项目现场到导航堆栈,它现在会显示一个导航栏。这家酒吧引起你的文本字段的边框向下移动,这意味着您先前指定的自动布局约束条件不再满足。幸运的是,这是很容易解决。
更新自动布局约束
1.在大纲视图或画布上,选择文本字段。
2.在画布上,打开解决自动布局问题弹出菜单图像
或者,您也可以选择编辑>解决自动布局问题>更新约束。
约束被更新,Xcode的警告消失。
注意:运行您的应用程序。您可以点击添加按钮,然后导航到从表视图中的附加待办事项项目视图控制器。因为你使用的是导航控制器与推塞盖,落后导航为您处理。这意味着你可以单击后退按钮返回到表视图。
推送导航工作就像它所设定的,但你要相当的东西是它并不完全。推送导航是专为向下钻取界面的,在这里你提供有关的任何选择的用户的详细信息。添加一个项目,在另一方面,是一个模式(model)的操作,用户执行某些操作是完整的,自包含的,然后从现场返回到主导航。呈现这类场景的适当的方法是模态(model)segue 。
改变segue风格
1.在大纲视图或画布上,从表中选择视图控制器的segue到外接的待办项目视图控制器。
2.在属性检查器中,从旁边的样式选项的弹出式菜单中选择模态。
因为一个模态视图控制器不被添加到导航堆栈,它不从表视图控制器的导航控制器得到一个导航栏。但是,你要保持导航栏,提供视觉连续性的用户。要在模态呈现给附加的待办项目视图控制器一个导航栏,将它嵌入到自己的导航控制器。
到导航控制器添加到附加的待办项目视图控制器
1.在大纲视图中,选择视图控制器。
2.与视图控制器选择的,选择Editor > Embed In > Navigation Controller。
和以前一样, Xcode中增加了一个导航控制器,并显示在视图控制器顶部的导航栏。接下来,配置此栏标题添加到这个场面,以及两个按钮,取消和完成。稍后,您将这些按钮链接到的动作。
配置该加载项的待办项目视图控制器导航栏
1.在大纲视图或画布上,下选择视图 - 控制器导航项目。如有必要,打开属性检查器中的图像:
2.在属性检查器中,键入添加任务项目在标题字段。
Xcode的变化,从“视图 - 控制器”视图控制器来描述“视图 - 控制器 - 添加任务项目” ,使您更容易指认现场。该说明显示在大纲视图。
3.从对象库中拖放一个栏按钮项目到最右边的附加待办事项项目视图控制器的导航栏。
4.在属性检查器中,选择Done从弹出菜单旁边的标识符选项。
按钮上的文字更改为“Done”。
5.从对象库中拖到另一栏按钮项目到最左边的附加待办事项项目视图控制器的导航栏。
6.在属性检查器中,然后从弹出菜单中取消旁边的标识符选项。
按钮上的文字更改为“Cancel”。
注意:运行您的应用程序。单击Add按钮。你仍然可以看到该加载项的场景,但不再是一个按钮,导航回到待办事项清单 - 相反,你看到两个按钮,你添加,完成和取消。这些按钮没有链接到任何行动,因此你可以点击他们,但他们没有做任何事情。配置按钮,完成或取消新的编辑待办项目,并把用户返回到待办事项列表是下一个任务。