[iOS] Pdf preview in view
lundi 8 septembre 2014Voici un tutoriel qui permet de visualiser un pdf dans une vue sans devoir quitter notre application pour une autre
D’abord, il faut inclure le framework: QuickLook.framework dans votre projet.
Dans le .h
#import <QuickLook/QuickLook.h> @interface UIViewController : UIViewController <QLPreviewControllerDataSource,QLPreviewControllerDelegate>
-(void)displaypdf:(id)sender{ QLPreviewController *previewController=[[QLPreviewController alloc]init]; previewController.delegate=self; previewController.dataSource=self; [UIBarButtonItem appearance].tintColor = [[Global sharedInstance] getBluebackground]; [self presentViewController:previewController animated:YES completion:nil]; [previewController.navigationItem setRightBarButtonItem:nil]; }
Maintenant, il reste à définir les fonctions delegate suivantes:
#pragma mark - QLPreviewController datasource delegate - (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller { return 1; } - (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index { NSString *path=[[NSBundle mainBundle] pathForResource:@"test.pdf" ofType:nil]; return [NSURL fileURLWithPath:path]; } #pragma mark - QLPreviewController delegate methods - (BOOL)previewController:(QLPreviewController *)controller shouldOpenURL:(NSURL *)url forPreviewItem:(id <QLPreviewItem>)item { return YES; } - (CGRect)previewController:(QLPreviewController *)controller frameForPreviewItem:(id <QLPreviewItem>)item inSourceView:(UIView **)view { UIView *view1 = [self.view viewWithTag:2]; return view1.frame; }
Dans ce cas-ci, il y a un seul pdf, il est possible de rajouter d’autres documents et de les sauver dans un NSArray et de retourner le bon selon le tag définit. Plus d’info: cliquez ici