iOS6新特征:UIActivityViewController类参考

<!--[if !supportLists]-->1.1. <!--[endif]-->UIActivityViewController类参考

继承自

UIViewController : UIResponder : NSObject

符合

NSCoding (UIViewController)

UIAppearanceContainer (UIViewController)

NSObject (NSObject)

框架

/System/Library/Frameworks/UIKit.framework

可用性

iOS6以及之后

声明在

UIActivityViewController.h

<!--[if !supportLists]-->1.1.1. <!--[endif]-->概述

UIActivityViewController类是一个标准的view controller,通个使用这个controller,你的应用程序就可以提供各种服务。系统提供了一些通用的标准服务,例如拷贝内容至粘贴板、发布一个公告至社交网、通过email或者SMS发送内容。应用程序同样可以自定义服务。

你的应用程序负责配置、展现和解雇这个view controller。view controller的配置涉及到viewcontroller需要用到的具体的数据对象。(也可以指定自定义服务列表,让应用程序支持这些服务)。在展现view controller时,必须根据当前的设备类型,使用适当的方法。在iPad上,必须通过popover来展现view controller。在iPhone和iPod touch上,必须以模态的方式展现。

<!--[if !supportLists]-->1.1.2. <!--[endif]-->任务初始化Activity View Controller

initWithActivityItems:applicationActivities:

根据指定的数据初始化并返回一个新的activity view controller。

访问Completion Handler

completionHandler属性

当activity view controller被解雇时,completion handler会被执行。

MethodGroup

excludedActivityTypes属性

将不会被显示出来的服务列表。

<!--[if !supportLists]-->1.1.3. <!--[endif]-->属性completionHandler

当activity view controller被解雇时,completion handler会被执行。

@property(nonatomic,copy) UIActivityViewControllerCompletionHandler completionHandler

讨论

当用户根据指定的数据完成了服务的选择操作,或者当用户解雇了view controller,那么view controller会执行completion handler,以便让你的应用程序知道用户操作的最终结果。

可用性

可用于iOS6.0以及之后

声明在

UIActivityViewController.h

excludedActivityTypes

将不会被显示出来的服务列表。

@property(nonatomic,copy) NSArray *excludedActivityTypes

讨论

这个属性包含了一个字符串数组,其中每一个对应的值,你都可以在UIActivity对象的参数activityType中找到。在这里规定的每一个字符串表示该服务不想显示给用户。你可以通过该属性排除你认为不适合出现的服务。例如,你不想允许用户打印某个图片。如果这个属性的值是nil,讲不会有服务被排除。

这个属性的默认值是nil。

可用性

可用于iOS6.0以及之后

声明在

UIActivityViewController.h

<!--[if !supportLists]-->1.1.4. <!--[endif]-->实例方法initWithActivityItems:applicationActivities:

根据指定的数据初始化并返回一个新的activity view controller。

- (id)initWithActivityItemsNSArray *)activityItems applicationActivitiesNSArray *)applicationActivities;

参数

activityItems

在执行activity中用到的数据对象数组。数组中的对象类型是可变的,并依赖于应用程序管理的数据。例如,数据可能是由一个或者多个字符串/图像对象,代表了当前选中的内容。

数组中的对象,也可以通过UIActivityItemSource协议来代替,例如UIActivityItemProvider对象。源和提供者扮演代理的角色,根据实际情况,需要相应数据时再进行提供。

这个数组不能为nil,至少要有一个对象。

applicationActivities

是一个UIActivity对象的数组,代表了应用程序支持的自定义服务。这个参数可以是nil。

返回值

返回一个将要展现的activity view controller。

讨论

根据当前的设备,由开发者负责使用适当的方法来展现和解雇view controller。在iPad上,必须通过popover来展现view controller。在其他设备上,必须以模态的方式展现。。

可用性

可用于iOS6.0以及之后

声明在

UIActivityViewController.h

<!--[if !supportLists]-->1.1.5. <!--[endif]-->常量UIActivityViewControllerCompletionHandler

当activity view controller被解雇时,completion handler会被执行。

typedef void (^UIActivityViewControllerCompletionHandler)(NSString *activityType, BOOL completed);

讨论

Activity完成之后,或者activity view controller被解雇了,那么view controller的completion block会被执行。你可以使用这个block来执行任意与服务相关的代码。这个block的参数如下:

activityType

被用户选择的服务类型。如果是自定义的服务,这个值是由UIActivity对象的方法activityType返回的。如果是系统定义的activities,这个值是一个在UIActivity类参考中”Built-in Activity Types”列出来的字符串。

completed

如果服务被执行了,则返回YES,如果没有则返回NO。当用户没有选择一个服务,而是解雇了view controller,这个参数同样被设置为NO。

可用性

可用于iOS6.0以及之后

声明在

UIActivityViewController.h

(转载:米咔门户)

猜你喜欢

转载自blog.csdn.net/willam1/article/details/7772190