在QLPreviewController上从远程服务器加载文件时应该使用什么方法?
我们何时应该使用我的服务器API下载文件以在QLPreviewController上加载它们.
我将QLPreviewController作为子视图添加到我当前的视图中.
我可以使用datasource方法从服务器调用下载文件.
- (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
但是一旦下载文件,我需要重新加载QLPreviewController,这应该在那里完成
对于图像我想图像库视图,以便滑动以查看从服务器下载的图像.
任何人都可以指向我从远程服务器URL加载图像的任何教程
最佳答案 要显示支持QLPreviewController的任何文件,url应该
是fileURL.
(id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
它总是返回fileURL – 如果你将使用任何其他URL,它将崩溃.下载结束后将文件保存在文档目录中,然后按下进行预览.
- (void)saveFileInDocDirectoryWithFileName:(NSString *)title{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath_ = [paths objectAtIndex:0];
NSString *filePath = [ docPath_ stringByAppendingPathComponent:title];
self.fileURL = [NSURL fileURLWithPath:filePath];
[self pushToPreViewWithURL:fileURL];
}
- (void)pushToPreViewWithURL:(NSURL *)filePathURL{
QLPreviewController *previewController = [[QLPreviewController alloc] init];
previewController.dataSource = self;
previewController.delegate = self;
// start previewing the document at the current section index
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
[self.navigationController pushViewController:previewController animated:YES];
}];
}
然后在委托方法中,返回fileURL:
- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)idx {
return self.fileURL;
}