You have two options. For iOS 4.0 or later, you can use the QLPreviewController
. You will need to implement the following two methods-
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller
{
return 1; //assuming your code displays a single file
}
- (id <QLPreviewItem>)previewController: (QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{
return [NSURL fileURLWithPath:path]; //path of the file to be displayed
}
And initialize the QLPreviewController as follows-
QLPreviewController *ql = [[QLPreviewController alloc] init];
ql.dataSource = self;
ql.delegate = self;
ql.currentPreviewItemIndex = 0; //0 because of the assumption that there is only 1 file
[self presentModalViewController:ql animated:YES];
[ql release];
For older iOS versions, you can use the UIDocumentInteractionController in the following way. Implement the delegate method-
- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller {
return self;
}
Init & display-
UIDocumentInteractionController* docController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];
docController.delegate = self;
[docController presentPreviewAnimated:YES];
Thanks,
Akshay
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…