QLPreviewController不更新iOS6中的previewItem

时间:2012-10-30 10:30:16

标签: ipad ios6 qlpreviewcontroller

我正在文件目录中保存文件并将其加载到 - (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)idx with [NSURL fileURLWithPath:self.path];

返回的网址是正确的图片。但是QLPreviewController显示最后保存的图像。这个问题仅在iOS6中出现。

这是代码:

- (无效)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;

    }

1 个答案:

答案 0 :(得分:0)

我通过在关闭QLPreviewController

时从文档目录中删除该文件来解决它

NSError * err = nil; [[NSFileManager defaultManager] removeItemAtPath:self.pdfPath error:& err];

现在它完全适用于iOS4.3,iOS5.1和iOS6