2016-06-09 92 views

回答

0

的Quicklook必须努力

{ 
    QLPreviewController *previewer = [[QLPreviewController alloc] init]; 
    previewer.dataSource = datasource; 
    previewer.currentPreviewItemIndex = 0; 
    NSURL *urlFilePath = [[NSBundle mainBundle] URLForResource:@"name" withExtension:@"pdf"]; 
    [self presentViewController:previewer animated:YES completion:nil]; 
} 

-(NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller 
{ 
    return 1; 
} 

    - (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index 
{ 
    return urlFilePath; 
} 

其中urlFilePath是文件路径的URL。

+0

它除了Word中打开一切,EXCEL,PPTX等 它只是不断加载这些文件。 我需要添加任何东西才能使ms office文件打开吗? – Arun

0

首先将“QuickLook.framework”添加到您的项目中。 它是iOS SDK框架的一部分。 获取listOfFilesPresentInDocumentDirectory中定义为类变量的文档目录中存在的所有文件的名称。

NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); 
NSString* documentDirectory = [documentDirectories objectAtIndex:0]; 
listOfFilesPresentInDocumentDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentDirectory error:NULL]; 

创建QLPreviewController的对象,设置自身作为其数据源,设置其currentPreviewItemIndex并将其推到UINavigationController的

QLPreviewController *previewController = [[QLPreviewController alloc] init]; 
previewController.dataSource = self; 
previewController.currentPreviewItemIndex = indexPath.row; 
[[self navigationController] pushViewController:previewController animated:YES]; 

实现你类的定义QLPreviewControllerDataSource协议,并添加以下两个QLPreviewControllerDataSource功能你的类的实现块

pragma mark - QLPreviewControllerDataSource方法

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller{ 
return [listOfFilesPresentInDocumentDirectory count]; 
} 

- (id)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index 
{ 
NSURL *fileURL = nil; 
NSString *fileName = [listOfFilesPresentInDocumentDirectory objectAtIndex:index]; 
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); 
NSString* documentDirectory = [documentDirectories objectAtIndex:0]; 
NSString *previewFileFullPath = [documentDirectory stringByAppendingPathComponent:fileName]; 
fileURL = [NSURL fileURLWithPath:previewFileFullPath]; 
return fileURL; 

}