下图中可以输入文字,url,图片(注,这里图片只给出了一个路径,在实际app中,图片来源可能是图片拾取器或者照相机)
当点击发送至新浪微博按钮时,会看到下面的画面效果
下面大致介绍一下
SLComposeViewController
的使用
1、使用范围
3)写一个bolck,用于completionHandler的初始化
目前只能以模态的方式显示
2、如何使用
a)添加Social.framework至工程如下图所示
a)添加Social.framework至工程如下图所示
b)添加
#import<Social/Social.h>到相应的文件中
c)关键代码如下所示
主要步骤:
1)判断服务器是否可以访问
使用方法isAvailableForServiceType:
2)使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller
其中
SLServiceTypeFacebook 就是 Facebook
SLServiceTypeTwitter 就是 Twitter
SLServiceTypeWeibo 就是微博
4)给view controller初始化默认的图片,url,文字信息
5)以模态的方式展现view controller
01 // 发送新浪微博
02 - (IBAction)WeiboAction:(id)sender
03 {
04 // 首先判断服务器是否可以访问
05 if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) {
06 NSLog(@\\"Available\\");
07
08 // 使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller
09 SLComposeViewController *socialVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
10
11 // 写一个bolck,用于completionHandler的初始化
12 SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result) {
13 if (result == SLComposeViewControllerResultCancelled) {
14 NSLog(@\\"cancelled\\");
15 } else
16 {
17 NSLog(@\\"done\\");
18 }
19 [socialVC dismissViewControllerAnimated:YES completion:Nil];
20 };
21 // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
22 socialVC.completionHandler = myBlock;
23
24 // 给view controller初始化默认的图片,url,文字信息
25 UIImage *image = [UIImage imageNamed:postImage.text];
26 NSURL *url = [NSURL URLWithString:postUrl.text];
27
28 [socialVC setInitialText:postText.text];
29 [socialVC addImage:image];
30 [socialVC addURL:url];
31
32 // 以模态的方式展现view controller
33 [self presentViewController:socialVC animated:YES completion:Nil];
34
35 } else {
36 NSLog(@\\"UnAvailable\\");
37 }
38 }
【注】由于目前苹果提供的iOS6模拟器上设置中还没有集成新浪微博的账号填写功能,通过下面的画面可以看到,模拟器只有Twitter和Facebook,只有等到以后苹果更新了相关的功能,才能用模拟器发送消息。
由于还没有设置微博账号信息,所以,你会看到如下画面