在 Master-Detail 应用程序的 DetailViewController 中显示文档
Posted
技术标签:
【中文标题】在 Master-Detail 应用程序的 DetailViewController 中显示文档【英文标题】:display documents in DetailViewController in Master-Detail Application 【发布时间】:2012-08-23 03:07:11 【问题描述】:我有一个适用于 iPad 的 Master-Detail 应用程序。我正在使用故事板。当用户在MasterViewcontroller
中选择一个单元格时,数据将显示在另一个表中(UITableViewController
)。当用户在第二个表格中选择一个单元格时,我想在DetailViewController
中显示相关信息。第二个表格显示文档列表(PDF、XLS 等)。因此,当用户选择abc.pdf
时,我希望PDF 文档在Detailviewcontroller
中显示(以只读模式)。
我从MasterViewcontroller
到detailviewcontroller
中找到了几个直接执行此操作的示例。但我无法从第二张表中实现这一点。导航如下所示:
Table1 (parent data)
|
V
Table2 (child data, which as I said is a list of documents)
|
V
Detailview (display the selected document in read-only mode)
【问题讨论】:
【参考方案1】:故事板还是 NIB?
假设故事板,
从您的第二个主表视图定义一个转场到将显示 PDF 的新详细信息屏幕; segue 可能应该是替换细节屏幕的“替换”segue; 给那个segue一个唯一的标识符; 在tableView:didSelectRowAtIndexPath
方法中,使用该标识符执行转场;
在显示 PDF 的新细节视图控制器中,使用要打开的 PDF 名称定义一个属性;在该控制器的viewDidLoad
中,让它打开PDF 进行查看;和
在主视图控制器的prepareForSegue
中,根据选择的表格行设置新视图控制器的属性。
如果不是情节提要,过程类似,但不是segue 和prepareForSegue
,而是手动alloc
/initWithNibName
在didSelectRowAtIndexPath
中,设置pdf 名称属性的值在您的新控制器中,然后您可以通过 pushViewController 或 presentViewController 将详细信息屏幕转换为您认为合适的内容。
【讨论】:
以上是关于在 Master-Detail 应用程序的 DetailViewController 中显示文档的主要内容,如果未能解决你的问题,请参考以下文章
核心数据 - NSManagedObjectContext 在 Master-Detail 应用程序中返回 nil
scrollsToTop 不适用于简单的 Master-Detail iOS 应用程序
如何在 iPad Master-Detail Application 的右侧而不是左侧创建滑出式 tableView?
如何在 ag-grid 的社区版中实现 Master-Detail 组件