如分享信息时不想弹出分享列表,而是在APP中直接选择分享信息到哪一个应用(比如直接分享到新浪微博),SLComposeViewController类可以帮助我们实现这个目的。iOS 系统为SLComposeViewController类提供所管理的UI界面:
SLComposeViewController所管理的视图可以撰写社交网络信息、发送这些信息以及取消发送,还有把自己的位置信息也添加到社交信息中发送。
主要步骤:
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 }