3

我必须在基于 splitview 的应用程序的 detailView 中快速查看文档。在主视图中,我有一个 UITableView,其中列出了我的应用程序的 Document 文件夹中的所有文件。
我正在尝试以这种方式在DetailViewController中使用QLPreviewController:

QLPreviewController *previewController = [[QLPreviewController alloc] init];
previewController.dataSource = self;
previewController.delegate = self;
previewController.currentPreviewItemIndex = ...;
[[self navigationController] pushViewController:previewController animated:YES];
[previewController release];

我可以看到文档的预览,但我不再看到详细视图顶部的工具栏,并且在纵向模式下我永远卡住了,因为我看不到文件列表在主视图中。
我也尝试制作 QLPreviewController 的 DetailViewController 子类,但没有成功。

4

2 回答 2

1

Try

[self presentModalViewController:preview animated:YES]; 

instead of

[[self navigationController] pushViewController:previewController animated:YES];
于 2011-08-03T16:29:02.283 回答
1

我认为不是将 previewController 推入 [self navigationController],而是根据您的描述,我认为您需要做的是将 previewController 设置为 UISplitViewController 的详细视图。

这可以像这样完成

[splitViewController setViewControllers:[NSArray arrayWithObjects:masterViewController, previewController, nil]];

如果您希望显示 previewController 的导航栏,您可以在将 previewController 设置为 UISplitViewController 中的详细视图之前使用 UINavigationController 包装 previewController ,如下所示:

UINavigationController *wrapperNavigationController = [[[UINavigationController alloc] initWithRootViewController:previewController] autorelease];
[splitViewController setViewControllers:[NSArray arrayWithObjects:masterViewController, wrapperNavigationController, nil]];

干杯

于 2011-11-30T05:23:27.253 回答