2016-06-09 89 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; 

}