ファイルをドキュメントディレクトリに保存してロードしています-(id)previewController:(QLPreviewController *)previewController PreviewItemAtIndex:(NSInteger)idx with [NSURL fileURLWithPath:self.path];
返されたURLは正しい画像です。ただし、QLPreviewControllerは最後に保存された画像を表示します。この問題は、iOS6でのみ発生します。
コードは次のとおりです。
-(void)loadAndSaveFile {
NSData *data = [NSData dataWithContentsOfURL:self.mainURL];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *arr=[self.urlString componentsSeparatedByString:@"."];
NSString *str=[arr lastObject];
self.pdfPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"Preview.%@",str]];
[data writeToFile:self.pdfPath atomically:YES];
[self preview];
}
ここで、previewは、QLPreviewControllerを初期化するメソッドです。
そしてデータソースメソッドpreviewItemAtIndexで、私はこのようなパスを取得しています
fileURL1 = [NSURL fileURLWithPath:self.pdfPath]; NSLog(@ "%@"、fileURL1);
if ([QLPreviewController canPreviewItem:fileURL1]) {
NSLog(@"///////%@",fileURL1);
return fileURL1;
}