gpt4 book ai didi

iOS QLPreviewController 显示 pdf 保存到文件系统

转载 作者:可可西里 更新时间:2023-11-01 05:22:14 24 4
gpt4 key购买 nike

如果我在项目中显示我的 bundle 中的 PDF 文件系统,我就会让 QLPreviewController 工作,

像这样example

但是如果我想显示文件系统中的 PDF,它不显示它,我如何调用我刚刚下载到我的文件系统中的 pdf 文件?

代码:

- (void)initPDFviewer
{
QLPreviewController *previewController=[[QLPreviewController alloc]init];
previewController.delegate=self;
previewController.dataSource=self;
[self presentModalViewController:previewController animated:YES];
[previewController.navigationItem setRightBarButtonItem:nil];
}

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return 1;
}
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{
//return 0;


//return url!


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSLog(@"paths :: %@", paths);

return 0;

}

所以我的问题是如何获取 pdf [只有文档目录中的 pdf],我如何获取这个 pdf?

谢谢

谢谢!

最佳答案

将您的初始化方法更改为以下内容。

-(id)init
{
if (self = [super init])
{
// arrayOfDocuments = [[NSArray alloc] initWithObjects:
// @"iOSDevTips.png", @"Remodel.xls", @"Core J2ME Technology.pdf", nil];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *docPath = [paths lastObject];

NSArray *docArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:docPath error:nil];

arrayOfDocuments = [[NSArray alloc] initWithArray:docArray];
}
return self;
}

添加这个新方法

-(NSString*)documentDirectoryPathForResource:(NSString*)aFileName 
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *fullPath = [[paths lastObject] stringByAppendingPathComponent:aFileName];
return fullPath;
}

然后用我的方法替换你的方法

- (id <QLPreviewItem>)previewController: (QLPreviewController *)controller previewItemAtIndex:(NSInteger)index 
{
// Break the path into it's components (filename and extension)
NSString *path = [self documentDirectoryPathForResource:arrayOfDocuments[index]];

return [NSURL fileURLWithPath:path];
}

代码是不言自明的。只需创建文档目录中所有文档的数组。然后使用该数组创建路径并将该路径的 URL 提供给 QLPreviewController

关于iOS QLPreviewController 显示 pdf 保存到文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18265704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com