When we need to display documents, we go for UIWebView and give the absolute path or the downloaded local path. However, UIWebView can not render properly docx, pptx and xlsx files. For this Apple has given this QLFramework, which is designed for rendering these files.
As per Apple Documentation,
A Quick Look preview controller can display previews for the following items:
- iWork documents
- Microsoft Office documents (Office ‘97 and newer)
- Rich Text Format (RTF) documents
- PDF files
- Images
- Text files whose uniform type identifier (UTI) conforms to the public.text type (see Uniform Type Identifiers Reference)
- Comma-separated value (csv) files
Here is the QLPreviewController usage.
QLPreviewController *previewController=[[QLPreviewController alloc]init];
previewController.delegate=self;
previewController.dataSource=self;
[previewController setAccessibilityValue:self.pptPath];
[self.navigationController presentViewController:previewController animated:YES
completion:^{
}];
[previewController.navigationItem setRightBarButtonItem:nil];
Here are the required QLPreviewControllerDataSource and QLPreviewControllerDelegate methods.
#pragma mark - data source methods
/*** Data source methods ****/
//– numberOfPreviewItemsInPreviewController:
//– previewController:previewItemAtIndex:
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
return 1;
}
- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller
previewItemAtIndex:(NSInteger)index
previewItemAtIndex:(NSInteger)index
{
return [NSURL fileURLWithPath:self.pptPath];
}
#pragma mark - delegate methods
- (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url
forPreviewItem:(id <QLPreviewItem>)item
forPreviewItem:(id <QLPreviewItem>)item
{
return YES;
}
We can preview any number of files at a time by passing QLPreviewItem objects.
Hope this post is useful. Feel free to comment in case of any queries.
No comments:
Post a Comment