这段代码在第一次接触时就能工作。预览开始显示(标题、完成、操作和空白页),然后再次调用previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)index。这一次,[self.resultsController objectAtIndexPath:selectedIndexPath];返回零-我的猜测是条目不再被选中。index在1点是正确的。
过程
- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)index
{
NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
Manuals *manuals = [self.resultsController objectAtIndexPath:selectedIndexPath];
NSURL *vUrl = [self locateUrl:[NSURL URLWithString:manuals.Url] ofType:[manuals.Url pathExtension]];
return vUrl;
}如果我忽略了异常-预览将继续显示文档。
我确实试图保留最后一个好返回的selectedIndexPath,但随后收到了错误:-[__NSArrayM indexAtPosition:]: unrecognized selector sent to instance 0x1cd52800
问题
如何仅使用传入的索引来获取resultsController对象?
发布于 2012-07-13 15:50:13
问题出在numberOfPreviewItemsInPreviewController:previewController。我返回的是[resultsController count],而不是我想要预览的文档数量。当previewController试图访问下几个对象时,它返回的是零。
// Returns the number of items that the preview controller should preview
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)previewController
{
return 1;
}发布于 2011-12-14 16:48:33
我不确定这是否能回答你的问题,但你可以用:
[previewController setCurrentPreviewItemIndex:0];若要设置要预览的当前项,请执行以下操作。
https://stackoverflow.com/questions/8508229
复制相似问题