关于Quicklook 以及 QLPreviewController

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

首先需要加入framework:


然后加入头文件:

  1. #import <QuickLook/QuickLook.h>  

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

 

  1. local_file_URL = [NSURL fileURLWithPath:path];   

  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的响应事件:

  1. - (IBAction)closeQuickLookAction:(id)sender {  
  2.     [navigationController dismissModalViewControllerAnimated:YES];  
  3. }  


数据源
  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]];

Problem Screenshot here

解决方法 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 工作。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值