关于Quicklook 以及 QLPreviewController

Quicklook 支持的文件:
  1. iWork文档
  2. 微软Office97以上版本的文档
  3. RTF文档
  4. PDF文件
  5. 图片文件
  6. 文本文件和CSV文件

首先需要加入framework:


然后加入头文件:

[cpp]  view plain copy print ?
  1. #import <QuickLook/QuickLook.h>  

在需要进入快速查看的地方初始化(这里只显示一个文件):

 

[cpp]  view plain copy print ?
  1. local_file_URL = [NSURL fileURLWithPath:path];   

[cpp]  view plain copy print ?
  1. QLPreviewController *ql = [[[QLPreviewController alloc]initWithNibName:nil bundle:nil] autorelease];  
  2.     ql.navigationController.navigationBarHidden = YES;  
  3.     // Set data source  
  4.     ql.dataSource = self;  
  5.       
  6.     // Which item to preview  
  7.     [ql setCurrentPreviewItemIndex:0];  
  8.       
  9.     navigationController = [[[UINavigationController alloc]initWithRootViewController:ql] autorelease];  
  10.     UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithTitle:@"back" style:UIBarButtonItemStylePlain target:self action:@selector(closeQuickLookAction:)];  
  11.     ql.navigationItem.leftBarButtonItem = backButton;  
  12.       
  13.     // Push new viewcontroller, previewing the document  
  14.     [self presentModalViewController:navigationController animated:YES];  


backButton的响应事件:

[cpp]  view plain copy print ?
  1. - (IBAction)closeQuickLookAction:(id)sender {  
  2.     [navigationController dismissModalViewControllerAnimated:YES];  
  3. }  


数据源
[cpp]  view plain copy print ?
  1. #pragma mark - quicklook  
  2. - (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller  
  3. {  
  4.     return 1;  
  5. }  
  6. - (id <QLPreviewItem>)previewController: (QLPreviewController *)controller previewItemAtIndex:(NSInteger)index  
  7. {  
  8.     return local_file_URL;  
  9. }  
QLPreviewController * preview = [[QLPreviewController alloc] init];
preview.dataSource = self;
preview.currentPreviewItemIndex = sender.tag;
preview.editing= YES; 
[self presentModalViewController:preview animated:YES];
[preview release];

这两条线不适合我。所以在编写这些行之前要小心。

[preview.tabBarController.tabBar setTintColor:[UIColor blackColor]];
[preview navigationController].navigationBar setTintColor: [UIColor blackColor]];

关于Quicklook 以及 QLPreviewController_第1张图片

解决方法 1:

自从 iOS5 可以主题控件基于全局或当所包含的特定容器的类的实例。IOS6 自前一种方法的设置 QLPreviewController 设置的 UINavigationBar tintColor 的子类停止了工作。

请考虑以下为例,与 iOS5 和 iOS6 兼容的解决方法之一:

任何包含在 QLPreviewController 内的 UINavigationBar:

[[UINavigationBar appearanceWhenContainedIn:[QLPreviewController class], nil]
        setTintColor:[UIColor blackColor]];

或全局设置在您的应用程序与范围内的所有 UINavigationBar 实例的 tintColor:

 [[UINavigationBar appearance] setTintColor:[UIColor blackColor]];

这同样的战略与 UITabBarController 工作。


你可能感兴趣的:(关于Quicklook 以及 QLPreviewController)