在 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 中显示(以只读模式)。

我从MasterViewcontrollerdetailviewcontroller 中找到了几个直接执行此操作的示例。但我无法从第二张表中实现这一点。导航如下所示:

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/initWithNibNamedidSelectRowAtIndexPath 中,设置pdf 名称属性的值在您的新控制器中,然后您可以通过 pushViewController 或 presentViewController 将详细信息屏幕转换为您认为合适的内容。

【讨论】:

以上是关于在 Master-Detail 应用程序的 DetailViewController 中显示文档的主要内容,如果未能解决你的问题,请参考以下文章

核心数据 - NSManagedObjectContext 在 Master-Detail 应用程序中返回 nil

scrollsToTop 不适用于简单的 Master-Detail iOS 应用程序

如何在 iPad Master-Detail Application 的右侧而不是左侧创建滑出式 tableView?

如何在 ag-grid 的社区版中实现 Master-Detail 组件

XtraGrid Master-Detail 在单独的网格中

关于GridView Master-Detail 不支持明细属性为IEnumerableIList问题