您的位置:首页 > 移动开发 > IOS开发

iOS6新特征:SLComposeViewController [新浪微博] 使用示例

2012-11-01 08:26 731 查看
下图中可以输入文字,url,图片(注,这里图片只给出了一个路径,在实际app中,图片来源可能是图片拾取器或者照相机)



当点击发送至新浪微博按钮时,会看到下面的画面效果



下面大致介绍一下SLComposeViewController的使用
1、使用范围

目前只能以模态的方式显示

2、如何使用

a)添加Social.framework至工程如下图所示



b)添加#import<Social/Social.h>到相应的文件中

c)关键代码如下所示
主要步骤:
1)判断服务器是否可以访问
使用方法isAvailableForServiceType:
2)使用SLServiceTypeSinaWeibo来创建一个新浪微博view Controller
其中

SLServiceTypeFacebook 就是 Facebook
SLServiceTypeTwitter 就是 Twitter
SLServiceTypeWeibo 就是微博

3)写一个bolck,用于completionHandler的初始化
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,只有等到以后苹果更新了相关的功能,才能用模拟器发送消息。



由于还没有设置微博账号信息,所以,你会看到如下画面



DEMO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: