消息,调用,UIDocumentInteractionController,QLPreviewController

Ios UIDocumentInteractionController (预览类似pdf、doc、ppt等类型文件的类) UIDocumentInteractionController是OC语言的一个类,但是他并不是一个controller,而是一个继承自NSObject类 一、主要作用: 预览类似pdf、doc、ppt等类型文件的类。 可以将用户接收到的文件分享到用户手机上的其他App中。 二、使用方式: 1.预览文件,并可以分享文件,如图1 2.直接分享文件,如图2 三、使用方法: 1.创建一个UIDoc... 阅读详情

几个新类型:

http://blog.chinaunix.net/u3/104182/showart_2248115.html

1. Target-Action 模式

   NSObject performSelector:@selector()...    类似函数指针的用法. 但它传递参数有限.   可能使用协议可替代,并且可以增加代码清晰度.

    它有一个waitUntilDone的参数,可以设置是异步还是同步执行方法.

   使用函数指针获得极大的动态性, 但是付出的代价就是编译器不知道我们要执行哪一个方法,所以在编译的时候不会找出错误,只有执行的时候才知道函数指针是否正确。
  Target-Action Paradigm 完全是面向对象的事件传递机制。运行时,通过respondsToSelector: 方法来检查实现的情况。如果有实现,那么使用performSelector:withObject:来调用具体的Action。

2.通知是一种对象间通信的轻量级机制.

    [[NSNotificationCenter defaultCenter] addObserver... ];注册或订阅消息,可以订阅自定义的或系统的消息.

    [[NSNotificationCenter defaultCenter] postNotificationName... ]; 发送同步消息

    系统消息如:UIApplicationWillTerminateNotification

    消息响应函数使用NSNotification作为参数.

    对同一个消息注册多次,则发送消息时,会响应多次。

3. Protocal 协议,类似于接口的用法.

4. @select()

    在Objective-C里,方法的名字包含了方法名和第一个参数的冒号,以及后面所有参数的参数标识加上相应的冒号,如果没有参数就不加冒号。

-(void)foo:(id)bar withFoo1:(id)bar1

{
}

这个方法真实的名字是 foo:withFoo1:

5.Objective C中的少用函数调用的概念,而是用对象之间“消息”的传递(messaging)来代替.

   ObjC中是以消息机制来工作的.  诸如-(void)foo:(int)a的语句在编译时被 objc_msgSend(receiver,selector,arg1,arg2,….)替换了,其实每一条发送消息的代码本质上还是调用函数 (call function),不过他们调用的都是同一个函数objc_msgSend,也可能是objc_msgSend_stret(返回值是结构体),objc_msgSend_fpret(返回值是浮点型)等.

   分析objc_msgSend(receiver,selector,arg1,arg2,….)的参数,第一个receiver的类型是id,代表接受消息的对象, 第二个是selector代表接收对象的方法,后面的是该方法的参数. [theClass foo:10]被编译成objc_msg(theClass,@selector(foo:),10);

   它的实现是基于ObjC runtime. NSObject类实现了这套机制,所以每一个继承于NSObject的类都能自动获得runtime的支持。在这样的类中,有一个isa指针,指向该类定义的数据结构体,这个结构体是由编译器在编译时为类(须继承于NSObject)创建的.在这个结构体中有包括了指向其父类类定义的指针以及Dispatch table. Dispatch table是一张SEL和IMP的对应表。对于名称相同的方法,他们都有相同的SEL,方法的名称不包括类名称,所以子类和父类中的同名方法拥有相同的SEL,但是他们的实现可以各不相同,因而在他们各自的Dispatch表中SEL所对应的IMP是不同的,IMP是一个函数指针,而虽然每一个SEL对应的是一个方法的名称,但考虑到效率,SEL本身是一个整型,编译器会另外生成一张SEL和方法名称对应的表。有了这样的结构,objc就可以实现多态了。

6.动态给类增加消息.

7.

Delegate:
消息的发送者(sender)告知接收者(receiver)某个事件将要发生,delegate同意然然后发送者响应事件,delegate机制使得接收者可以改变发送者的行为。通常发送者和接收者的关系是直接的一对多的关系。

Notification:
消息的发送者告知接收者事件已经发生或者将要发送,仅此而已,接收者并不能反过来影响发送者的行为。通常发送者和接收者的关系是间接的多对多关系。

Notification是广播。
Delegate是点对点。

9.NSInvocation

10.模块间协作,尽量不使用target-action模式,慎用通知,优先使用代理。

11.KVO=KeyValue Observing,KVC=Key Value Coding

     Kvo是Cocoa的一个重要机制,他提供了观察某一属性变化的方法,极大的简化了代码。这种观察-被观察模型适用于这样的情况,比方说根据A(数据类)的某个属性值变化,B(view类)中的某个属性做出相应变化。对于推崇MVC的cocoa而言,kvo应用的地方非常广泛。(这样的机制听起来类似Notification,但是notification是需要一个发送notification的对象,一般是notificationCenter,来通知观察者。而kvo是直接通知到观察对象。)

http://www.cnblogs.com/scorpiozj/archive/2011/03/14/1983643.html

例:

 Student *stu = [[Student alloc]init];
    [stu addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil];
    stu.name = @"张三";

    stu.name值改变时,会调用下面的方法

 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"keyPath:%@ object:%@ change:%@",keyPath,object,change); 
}

http://hi.baidu.com/492437598/blog/item/6ed35079c748e7f52f73b380.html

12.应用之间调用

    http://blog.youkuaiyun.com/pjk1129/article/details/6641211

    http://blog.youkuaiyun.com/pjk1129/article/details/6643411

    跳转到appstore:

   [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.apple.com/app/sandman/id388887746?mt=8&uo=4"]];
或者
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/app/sandman/id388887746?mt=8&uo=4"]];

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/app/hainan-tianya-online-network/id451916383?mt=8&uo=4"]];
  后者直接打开app store

   当在手机上的网页中的链接有http://itunes.apple.com/app...时,需要把http替换成itms-apps,然后使用上面的方式跳到appstore中。

   
   跳转到评分:
     在应用中加入打分按钮,点击后直接跳转到 App Store 的评分界面,可以解决在用户用了好软件后忘记或嫌麻烦而不去 App Store 进行打分评星。
     App Store 上评论的链接地址是 itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id = appleID
    NSString* appleid=@"451916383";
    NSString *str = [NSString stringWithFormat:
                     @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",
                     appleid ];  
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

   ios或mac程序中添加链接到评价页面的方法

    http://blog.youkuaiyun.com/terrytan18/article/details/7377836

13. 打开documents下的文件,或包中的资源文件。
 用浏览器打开word

    NSString *path = @"/..../xx.doc";

    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];

在SDK中打开其他接入应用的解决方案

http://blog.youkuaiyun.com/arthurchenjs/article/details/6920631

应用程序间通讯 - URL Scheme

http://blog.youkuaiyun.com/flower4wine/article/details/6454957

 在Mac和iOS中注册自定义的URL Scheme

 http://cocoa.venj.me/blog/custom-url-scheme-on-mac-and-ios/

iOS应用中打开一些其他应用的URL-Scheme

http://willonboy.tk/?p=742

iPhone开发技巧 URL Scheme启动进程调试教程

http://mobile.51cto.com/iphone-278973.htm

请问程序中如何调用safari来打开本地html文件?未有答案。

http://www.cocoachina.com/bbs/read.php?tid=17135&page=1

13.1 UIDocumentInteractionController 用真机测试,模拟器可能不起作用。

        UIDocumentInteractionController uses QLPreviewController to display. It allows for additional hooks for delegate methods.

#pragma mark -
#pragma mark loadDocument
-(void)loadDocument:(NSString*)path
{    
    /*
    //use UIWebView
    NSURL *url = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    if(!iWebView)
    {
        iWebView=[[UIWebView alloc] initWithFrame:self.view.bounds];
        iWebView.scalesPageToFit = YES;
        for (id subview in iWebView.subviews)
        {
            if ([[subview class] isSubclassOfClass: [UIScrollView class]])
            {
                ((UIScrollView *)subview).bounces = NO;
            }
        }
        [self.view addSubview:iWebView];
    }
    [iWebView loadRequest:request];
     */
    
    //use UIDocumentInteractionController
    NSURL *url = [NSURL fileURLWithPath:path];
    UIDocumentInteractionController* controller = [[UIDocumentInteractionController interactionControllerWithURL:url] retain];
    controller.delegate = self;
    BOOL ret = [controller presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];//documentInteractionControllerDidDismissOpenInMenu
    if (!ret)
    {
        ret = [controller presentPreviewAnimated:YES];//documentInteractionControllerDidEndPreview
        
        if (!ret)
        {
            [DialogUtil postAlertWithMessage:@"open failed"];
        }
    }
}

#pragma mark -
#pragma mark UIDocumentInteractionControllerDelegate
- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller
{
    return self;
}
- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller
{
    NSLog(@"documentInteractionControllerDidEndPreview");
    [controller autorelease];
}
- (void)documentInteractionControllerDidDismissOpenInMenu:(UIDocumentInteractionController *)controller
{
    NSLog(@"documentInteractionControllerDidDismissOpenInMenu");
    [controller autorelease];
}

13.2 结果是用canOpenURL不能打开本地文件
    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@",path]];
    BOOL ret=[[UIApplication sharedApplication] canOpenURL:url];
    if(ret)
    {
        ret=[[UIApplication sharedApplication] openURL:url];
        NSLog(@"canOpenURL");
        
        if(!ret)
        {
            [DialogUtil postAlertWithMessage:[NSString stringWithFormat:@"open %@ failed",[url absoluteString]]];
        }
    }
    else
    {
        [DialogUtil postAlertWithMessage:[NSString stringWithFormat:@"can't open %@",[url absoluteString]]];
    }

13.3 画PDF使用QurtZ的CGPDFDocumentGetPage,CGContextDrawPDFPage等相关API。

13.4 iPhone上看Word、Excel、PDF全攻略

http://iphone.tgbus.com/tutorial/use/200801/20080102113010.shtml

13.5  iOS中使用QLPreviewController来预览文件

         http://www.acwind.net/blog/?p=1267 

         QuickLook.framework

         #import <QuickLook/QLPreviewController.h>

if([QLPreviewController canPreviewItem:(id <QLPreviewItem>)localFileUrl])

{

        QLPreviewController* previewController=[[QLPreviewController alloc] init];
        previewController.dataSource=self;
        [viewController presentModalViewController:previewController animated:YES];
        [previewController release];

}

        #pragma mark -
#pragma mark QLPreviewControllerDataSource
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller;
{
    return 1;
}
- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)idx
{   
    NSURL* url=previewItemURL_;
    
    return url;
}

  

14.http://tiny4cocoa.com/thread-1963-1-1.html

在 iOS中可以直接调用 某个对象的消息 方式有2中

一种是performSelector:withObject:

再一种就是NSInvocation

第一种方式比较简单,能完成简单的调用。但是对于>2个的参数或者有返回值的处理,那就需要做些额外工作才能搞定。那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作

NSInvocation可以处理参数、返回值。会java的人都知道凡是操作,其实NSInvocation就相当于反射操作。

http://www.ppsim.com/blog/index.php/2011/04/418

http://www.informit.com/articles/article.aspx?p=1646438&seqNum=6

在iphone4模拟器上测试:


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
        [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];

    UIApplication* app = [UIApplication sharedApplication];

//UIBackgroundTaskIdentifier iBgTask;

    iBgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:iBgTask];
        iBgTask = UIBackgroundTaskInvalid;
    }];

}


-(void)onTimer
{   
    NSString* urlstr=@"http://...";
    NSURL* url=[NSURL URLWithString:urlstr];
    NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
    [[NSURLConnection alloc] initWithRequest:request delegate:self];
   
    UIApplication* app = [UIApplication sharedApplication];
    NSTimeInterval timeRemaining=app.backgroundTimeRemaining; //后台剩余时间,秒.
    NSNumber* number=[NSNumber numberWithDouble:timeRemaining];
    NSLog(@"backgroundTimeRemaining:%@",[number stringValue]);
}

测试结果:当在前台时,timeRemaining是一个很大的值, 程序转到后台后,得到timeRemaining是600秒.

当timeRemaining降到快到5时,进入了[app endBackgroundTask:iBgTask];后台运行结束.

如果把iBgTask声明为了局部变量,此时会报Can't endBackgroundTask: no background task exists with identifier 4d09910, or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug.但却在这之后NSTimer仍然继续正常执行,onTimer中执行的网络操作正常,timeRemaining会变为负数.

不执行endBackgroundTask也会正常继续.

QLPreviewController.Example:显示 QLPreviewController 用法的简单示例项目 ••快速查看••• QLPreviewController 示例 显示QLPreviewController用法的简单示例项目 这个项目展示了如何使用QLPreviewController来预览各种文件,如 PDF、图像、Word 文档等。 它展示了如何创建自定义QLPreviewItem ,如何配置QLPreviewController显示多个文件,以及如何生成缩略图QLThumbnailGenerator使用QLThumbnailGenerator.Request和方法generateBestRepresentation 。 它甚至可以在.usdz显示 3D ARKit 模型 立即下载

相关推荐

Colmap参数调优实战:如何通过5个关键设置提升3D重建精度

本文深入探讨Colmap参数调优实战,通过5个关键设置显著提升3D重建精度。重点解析特征匹配参数、BA优化配置、初始化策略、资源分配及动态调整方法,结合量化数据和实际案例,帮助开发者精准优化重建流程,适用于古建筑扫描、无人机航拍等多种场景。

weixin_30872157的博客 432

UIDocumentInteractionController

UIDocumentInteractionController UIDocumentInteractionController官方文档介绍如下: A view controller that previews, opens, or prints files whose file format cannot be handled directly by your app. 一个view contr...

了凡 2433

车辆贷款违约预测挑战赛

2021科大讯飞-车辆贷款违约预测挑战赛--方案简介车贷违约预测问题,目的是建立风险识别模型来预测可能违约的借款人。预测结果为借款人是否可能违约,属于二分类问题。偏数据挖掘的比赛,关键点是如何基于对数据的理解抽象归纳出有用的特征。站在大佬的视角,尝试学习总结,站在巨人的肩膀上,也许看得会更远一些。直接进入主题,开始学习套路,芜湖~特征工程1、常用库、数据导入import pandas as pd import numpy as np import lightgbm as lgb import xgboost

平平淡淡,戒急用忍,一生学闭嘴。 3341

iOS开发之UIDocumentInteractionController

本文介绍如何利用UIDocumentInteractionController和QuickLook通过第三方的App来快速打开一些文件

shxwork的博客 5216

别再让会议变‘回音壁’:手把手教你调优WebRTC的AEC3回声消除(附实战代码)

本文深入解析WebRTC的AEC3回声消除技术,提供从参数调优到声学环境适配的实战指南。通过诊断回声特征、解剖核心参数(如filter.length_blocks和delay_estimate_smoothing)以及应对特殊场景(如密闭空间与开放办公区),帮助开发者有效解决视频会议中的回声问题,提升语音通信质量。附有实战代码和调试工具,适合需要优化实时通信体验的开发者。

weixin_29220405的博客 173

Revit实战:从零到一,手把手教你用族(Family)搭建一个完整的水闸BIM模型

本文详细介绍了如何使用Revit的族(Family)功能从零开始构建一个完整的水闸BIM模型。通过参数化族设计,实现闸门开度调整自动关联流量计算等智能化功能,提升水利工程BIM模型的工程价值和应用效率。文章涵盖族库规划、核心构件创建、高级技巧及BIM数据深度应用,为水利工程数字化提供实用指南。

weixin_28738165的博客 264

iOS开发-QLPreviewController与UIDocumentInteractionController显示文档

iOS开发-QLPreviewController与UIDocumentInteractionController显示文档在应用中,我们有时想预览文件, 可以使用QLPreviewController与UIDocumentInteractionController。

一名开发者 1947

NVIDIA Orin AGX开发环境搭建避坑指南:从Ubuntu 22.04到ROS2完整配置流程

本文详细介绍了NVIDIA Orin AGX开发环境搭建的全流程,从Ubuntu 22.04系统安装到ROS2深度优化,涵盖驱动部署、CUDA环境配置、散热与功耗管理等关键步骤。特别针对Orin AGX的特性提供了实用避坑指南和性能优化技巧,帮助开发者高效完成开发环境配置。

weixin_28340315的博客 451

iOS SDK:预览和打开文档

http://mobile.tutsplus.com/tutorials/iphone/previewing-and-opening-documents-with-uidocumentinteractioncontroller/ iOS中的沙盒可以让平台更加的安全,这也是沙盒给用户带来的最主要好处。不过由于沙盒的严格限制,导致程序之间共享数据比较麻烦。一般在程序间共享文档可以通过UIDo

Just Do It 1427

光伏微电网蓄电池储能控制系统设计及动态性能分析

本文构建了光伏微电网蓄电池储能控制系统的完整理论体系。在系统架构方面,提出了基于直流母线电压平衡的多时间尺度能量管理理论,建立了光伏发电单元的二阶物理模型和MPPT动态跟踪算法。针对蓄电池系统,设计了融合二阶RC等效电路与扩展卡尔曼滤波的SOC估计方法,误差控制在3%以内。双向DC-DC变换器采用状态空间平均建模方法,推导了小信号传递函数,为闭环控制提供理论基础。该体系实现了从瞬时功率平衡到长期能量调度的多层级协同控制,为微电网稳定运行提供了系统的解决方案。

AI的内部世界的博客 191

IEEE69节点数据(Matlab)

IEEE69节点数据(Matlab)

weixin_46039719的博客 1162

关于UIDocumentInteractionController使用问题

UIDocumentInteractionController

sky_long_fly的专栏 999

等保测评-瀚高数据库

一般适用于等保测评

m0_54146694的博客 1634

DocumentInteraction Controllerl的使用

iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller。此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件。而且,从4.2开始,Quick Look Framework提供了对多种文档的内置打印。你可以参考DocumentInteraction Controller类参考以及Quick Look Framework指南,以及...

wangpengfei360 309

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ios 预览控件 UIDocumentInteractionController

用UIDocumentInteractionController 最好设置成全局变量,要不就会提前释放,导致崩溃,崩溃原因如下Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UIDocumentInteractionController has gone away prem...

ForeverMyheart的博客 911

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

通过UIDocumentInteractionController预览和分享"史蒂夫•乔布斯传"

原文链接:http://www.jianshu.com/p/3f03897cf98a 前言 朋友分享推荐给我一本PDF格式的史蒂夫•乔布斯传,阅读了几篇,很受感触,于是想把他分享给大家欣赏阅读。早起闲来无事,正好就接着写篇文章来分享一下!我在“iOS实现App之间的内容分享”这篇文章中详细讲解了通过注册UTI的方式让我们的App支持分享,也简单地说了一下App内部怎么处理分享。同时,我也指

jeffasd的专栏 1823

UIDocumentInteractionController之程序间文档共享

iOS中的沙盒可以让平台更加的安全,这也是沙盒给用户带来的最主要好处。不过由于沙盒的严格限制,导致程序之间共享数据比较麻烦。一般在程序间共享文档可以通过UIDocumentInteractionController类实现通讯。它支持在你的app中用其他app预览和显示文档。同时也支持文件关联,允许其他app通过你的程序打开文件。这些技术包括了UIKit中...

weixin_34345753的博客 417

UIDocumentInteractionController UIDocumentPickerViewController

由于近期公司做一个移动端的可以发送office文件并可以打开预览,因此扒出来了这俩哥们,但是网上看对这个介绍并不多,因此我需要去官方文档看一下,并且实现起来。 UIDocumentInteractionController 一、主要作用: 1.预览类似pdf、doc、ppt等类型文件的类。 2.可以将用户接收到的文件分享到用户手机上的其他App中。 ...

georgehenrywilliam的博客 872

使用UIDocumentInteractionController和QLPreviewController预览文件

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34203426的博客 267

UIDocumentInteractionController 文档交互控制器 pdf 游览

UIDocumentInteractionController 文档交互控制器 pdf 游览 UIDocumentInteractionController之程序间文档共享

Sico2Sico 930

做一个IOS聊天APP如何实现发送/预览文件的功能

导语 环信官方IOS版Demo功能很强大,却没有实现【发送文件】的功能。但是我们在实际项目开发中,用户之间经常需要在聊天窗口发送文件。所以,本文主要介绍在IOS版APP中,如何结合iCloud Drive一步步实现【发送文件】和【预览文件】的功能。 一、认识iCloud DriveiCloud官方文档 这里可以看到iCloud的一些官方介绍以及使用方式,刚开始暂时不必要深入了解。 iC

江南孤鹜——“知行合一”的Software Developer 4036

文件查看之UIDocumentInteractionController和UIWebView.WKWebView

iOS中的沙盒可以让平台更加的安全,这也是沙盒给用户带来的最主要好处。不过由于沙盒的严格限制,导致程序之间共享数据比较麻烦。一般在程序间共享文档可以通过UIDocumentInteractionController(该类经常被开发者忽略) UIDocumentInteractionController在iOS 3.2中就已经存在了,使用起来非常灵活,功能也比较强大。它除了支持同设备上app之间的文

Step_Next的博客 1554

文档交互

Document Interaction     提供打开你d

denghuihua的专栏 423

QLPreviewController的使用

QLPreviewController是框架中的一个重要视图控制器,主要用于查看PDF、word文档、图片等。但是对于纯文本的TXT文档不适用。 QLPreviewController的使用方法这里不再赘述,网上挺多。但是有时候 QLPreviewController并不适合我们在工程中直接使用,他自带的导航栏我就不喜欢,那么我们就需要自己定制导航栏。但是在Apple提供的框架中并没有提供

小白的专栏 3129

QLPreviewController 的使用

在iOS4.0之后,使用官方SDK中的QLPreviewController可以预览PDF文件,他还支持其他的文件格式 1.iWork文档 2.微软Office97以上版本的文档 3.RTF文档 4.PDF文件 5.图片文件 6.文本文件和CSV文件 QLPreviewController需要用到QuickLook.framework,在.h文件中导入QuickLook/

圣人男的博客 3433
上一篇: 单页应用
下一篇: 内存管理,ARC
andyweike
博客等级 码龄20年 135粉丝 323原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值