iOS6新特征:Social Framework 参考之SLComposeViewController


 1.1.SLComposeViewController 类参考

继承自

UIViewController : UIResponder : NSObject

符合

NSCoding (UIViewController)

UIAppearanceContainer (UIViewController)

NSObject (NSObject)

框架

/System/Library/Frameworks/Social.framework

可用性

iOS6以及之后

声明在

Social/SLComposeViewController.h

 

1.1.1.概述 

SLComposeViewController类显示一个view,让用户可以在支持的social网络服务上发表一个公告(post)。

在显示这个view给用户使用之前,使用SLComposeViewController的类方法isAvailableForServiceType:来检测服务账号(例如Twitter)是否已经设置以及可以访问。

初始化相关内容需要在显示view controller给用户使用之前进行。所有设置公告(post)内容的方法都将返回一个Boolean值。如果设置的内容不符合post的要求,或者view controller已经显示给用户了,那么这些方法将会返回NO。你设置post的所有内容必须在view controller显示给用户之前进行。显示了view controller之后,只有用户可以编辑公告。

你可以设置一个handler----使用completionHanler属性------当用户写完了一个公告时,会收到通知。注意,已经结束了的handler是不会被任何线程所调用的。

1.1.2.任务

创建一个Social Compose View Controller

+ composeViewControllerForServiceType:

创建一个socail compose view controller。

 

检查social服务类型

+isAvailableForServiceType:

返回结果为指定服务类型是否可以发送请求。

serviceType属性

指定social网络服务

 

编写公告

–setInitialText:

为公告设置初始文字。

– addImage:

给公告添加图片。

–removeAllImages

移除公告的所有图片。

– addURL:

给公告添加URL。

–removeAllURLs

移除公告的所有URL。

 

处理结果

completionHandler属性

当用户完成了公告的编写,handler会被调用。

 

1.1.3.属性

completionHandler

当用户完成了公告的编写,handler会被调用。

@property(nonatomic, copy) SLComposeViewControllerCompletionHandler completionHandler

 

讨论

Handler有唯一的一个参数,用来表示用户是完成了还是取消了公告的编写。这个handler不保证被任何线程调用。

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

serviceType

指定social网络服务。

@property(nonatomic,readonly) NSString *serviceType

 

讨论

当在composeViewControllerForServiceType:中初始化一个social compose view controller时,会设置这个属性的值。同一时刻,显示的每一个social compose view controller只能连接到一个social服务上。使用这个属性,可以检查你的social compose view controller被指定到哪个服务上。Service_Type_Constants列出了可能的值。

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

1.1.4.类方法

composeViewControllerForServiceType:

    创建一个新的social compose view controller

+ (SLComposeViewController*)composeViewControllerForServiceType:(NSString *)serviceType

参数

serviceType

这个参数用于指定你想发公告的social网络服务。你必须使用Service_Type_Constants给出动了某个值。这个同样是设置serviceType的值。如果传入了一个非法的serviceType,这个方法会抛出一个异常。

返回值

返回一个social compose view controller,如果发生了错误,则返回nil。

讨论

使用这个方法创建social compose view controller。不要使用其它任何方法。

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

isAvailableForServiceType:               

    返回值为是否可以向一个指定的服务类型发送请求。

+ (BOOL)isAvailableForServiceType:(NSString *)serviceType

参数

serviceType

social网络服务。可以使用的值,请参考Service_Type_Constants列出的内容。

返回值

返回一个Boolean值,表示服务是否可以访问以及至少已经在设置里面设置了一个账号。

讨论

为了账号可用,用户必须在设备的设置里面登录social服务。

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

1.1.5.实例方法

addImage:

给公告添加一个图片。

- (BOOL)addImage:(UIImage *)image

 

参数

image

添加到公告的图片。

返回值

返回一个Boolean值,表示image是否添加成功。

讨论

如果image不符合当前可用的空间,或者viewcontroller已经显示给用户了(因此不能被改变),则这个方法返回NO。可以使用的UIImage格式,请看UIImage Class参考中的“Supported Image Formats”。Image的大小限制取决于指定的服务器,这是由服务提供商指定的。表1-1列出了所支持服务的文档链接。

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

addURL:

给公告添加一个URL 。

- (BOOL)addURL:(NSURL *)url

参数

url

添加到公告的URL。

返回值

返回一个Boolean值,表示URL是否添加成功。

讨论

如果url不符合当前可用的字符,或者viewcontroller已经显示给用户了(因此不能被改变),则这个方法返回NO。字符的限制取决于指定的服务器,这是由服务提供商指定的。表2-1列出了所支持服务的文档链接。

 

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

removeAllImages

从公告中移除所有的图片。

- (BOOL)removeAllImages

返回值

返回一个Boolean值,表示所有的image是否移除成功。

讨论

如果view controller已经显示给用户了,这时调用removeAllImages方法,该方法会返回NO,并且公告中的图片不会被移除。

 

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

removeAllURLs

从公告中移除所有的URL。

- (BOOL)removeAllURLs

返回值

返回一个Boolean值,表示所有的URL是否添加成功。

讨论

如果view controller已经显示给用户了,这时调用removeAllURLs方法,该方法会返回NO,并且公告中的URL不会被移除。

 

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

setInitialText:

给公告初始化文字。

- (BOOL)setInitialText:(NSString *)text

参数

text

添加到公告的文本。

返回值

返回一个Boolean值,表示文本是否添加成功。

讨论

如果文本不符合当前可用的字符空间,或者view controller已经显示给用户了(因此不能被改变),则这个方法返回NO。字符的限制取决于指定的服务器,这是由服务提供商指定的。表2-1列出了所支持服务的文档链接。

 

1.1.6.常量

SLComposeViewControllerCompletionHandler

定义了一个handler,当用户结束编写post时,会被调用。

typedef void(^SLComposeViewControllerCompletionHandler)

(SLComposeViewControllerResultresult);

讨论

当结束了post编写,但是SLComposeViewController任然显示时,handler被调用,它负责解雇view controller。这个handler可能返回的值请看“SLComposeViewControllerResult”。使用completionHandler属性来设置这个handler。

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

SLComposeViewControllerResult

completionHandler属性可能返回的值。

typedefNS_ENUM(NSInteger,

SLComposeViewControllerResult){

SLComposeViewControllerResultCancelled,

SLComposeViewControllerResultDone

};

常量

SLComposeViewControllerResultCancelled

公告没有被发送,但view controller被解雇。例如,用户选择取消或者账号不可用。

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

SLComposeViewControllerResultDone

view controller被解雇了,并且公告已经在后台被发送了。当用户选择发送时发生。

可用性

可用于iOS6.0以及之后

声明在

SLComposeViewController.h

 

表1-1 Social Services各自文档网站链接

Facebook

https://developers.facebook.com/docs/

Sina Weibo

http://open.weibo.com/wiki/

Twitter

https://dev.twitter.com/docs

 



你可能感兴趣的:(iOS6新特征:Social Framework 参考之SLComposeViewController)