【发布时间】:2013-01-22 14:33:02
【问题描述】:
我正在尝试使用 QLPreviewController 显示各种文档类型,但我遇到了一个问题,即如果我有多个文档被提供给 QLPreviewController,则无法在 Excel 工作表之间切换,
self.fileNames = [NSArray arrayWithObjects:@"Doc1.xlsx",@"Doc2.html",@"Doc3.csv",@"Doc4.pdf",@"Doc.txt", nil];
//
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{
NSString *contentURL = [[NSBundle mainBundle] pathForResource:[self.fileNames objectAtIndex:index] ofType:nil];
return [NSURL fileURLWithPath:contentURL];
}
- (NSInteger) numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return [self.fileNames count];
}
如果预览项目的数量设置为 1,那么您可以浏览 xlsx 文件的所有工作表,但如果预览器有超过 1 个文档,那么您只能放大和缩小。
请注意,这只是 iOS 6 的问题,iOS 5 可以正常运行。
我感觉这可能与更改 QLPreviewController 以使其成为远程视图控制器有关,这会影响手势识别器? (http://oleb.net/blog/2012/10/remote-view-controllers-in-ios-6/)
非常感谢任何其他想法或已知的解决方法。
【问题讨论】:
-
只有在 xls/xlsx 文档是第一个被显示的时候才会发生这种情况,如果它在数组中的任何其他地方按预期执行。
-
虽然不是解决方案,但只要在其中检测到 xls 时,将空白文档放入文档数组的 0 位置,然后在加载视图时前进到没有动画的第二页。
标签: ios objective-c excel ios6 qlpreviewcontroller