iOS Segues提示和技巧
Segues是一种有用的导航模式,在iOS上用于在视图控制器之间进行转换。 这篇文章将展示如何在许多常见用例中有效地使用与segue相关的代码。
使用segues的一个主要好处是,从源视图控制器到目标视图控制器的过渡可以完全在情节提要中进行编码,并且不需要任何代码即可管理演示。
一个例外是需要自定义序列,例如自定义表示控制器时—详情请参见下文。
任务创建和准备
给定一个带有带有按钮的源视图控制器的情节提要,只需选择按钮并按住CTRL +拖动到目标视图控制器,即可创建到目标视图控制器的简单序列:
如果需要,可以在源视图控制器类中重写prepareForSegue方法,以配置目标视图控制器,如下所示:
假设我们的数据源是一个项目数组,并且我们想为目标视图控制器配置与所选单元格的indexPath相对应的项目。
由于segue是从表视图中的某个单元格触发的,因此prepareForSegue中的sender对象将是该单元格本身,并且我们可以将它的indexPath检索为tableView.indexPathForCell(cell)并使用它来引用我们的数据源数组。 例:
然后,我们需要像这样实现UIPopoverPresentationControllerDelegate的adaptivePresentationStyleForPresentationController方法:
摘要
利用情节提要板来定义应用程序的导航流程,并遵循以下规则将代码链接到您的任务上:
- 重写prepareForSegue方法以在显示目标视图控制器之前对其进行配置。
- 当通过点击按钮或单元格执行搜索时,请在源视图中直接挂钩到按钮/单元格。
- 有条件地执行segue时,将其挂接到源视图控制器,如果条件评估为true,则调用performSegueWithIdentifier 。
- 对于表视图和集合视图,使用indexPathForCell获取为prepareForSegue中的数据源建立索引所需的indexPath 。
- 选择Present as Popover选项,并实现adaptivePresentationStyleForPresentationController方法以返回UIModalPresentationStyle.None,以在iPhone 上将 segue呈现为弹出框 。
参考文献
- Apple Docs:故事板Segues
- PSPDFKit博客:演示控制器和自适应演示
注意 :此故事 最初 于2016年1月25日 发布在我的博客 上。
有关更多此类故事,请 订阅我的邮件列表 。
如果您喜欢,请单击下面的so,以便其他人在中此看到此内容。