如何在基于splitview的iPad应用程序中显示文档的快速外观

时间:2011-06-23 20:24:01

标签: ios ipad uisplitviewcontroller quicklook

我必须在基于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子类,但没有成功。

2 个答案:

答案 0 :(得分:1)

尝试

[self presentModalViewController:preview animated:YES]; 

而不是

[[self navigationController] pushViewController:previewController animated:YES];

答案 1 :(得分:1)

我认为不是将previewController推送到[self navigationController],而是我认为你需要做的就是将你的描述设置为你的UISplitViewController的详细视图。

这可以这样做

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

如果你想让previewController的导航栏出现,你可以使用UINavigationController包装previewController,然后将其设置为UISplitViewController中的详细视图,如下所示:

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

干杯