【发布时间】:2014-11-29 02:36:16
【问题描述】:
我有一个案例如下:
- 在应用程序中,我创建了一个 UIButton,单击时将显示一个弹出共享 facebook,如 UIActivityViewController。但我不知道从 UIActivityViewController 获取弹出共享 facebook。我需要每个人的帮助。
非常感谢!!!
【问题讨论】:
标签: ios facebook popup share uiactivityviewcontroller
我有一个案例如下:
非常感谢!!!
【问题讨论】:
标签: ios facebook popup share uiactivityviewcontroller
您需要创建一个 UIActivityViewController 并指定要共享的项目:
- (IBAction)buttonPressed:(id)sender
{
NSString *textToShare = @"Put text here";
UIImage *imageToShare = _img;
NSArray *itemsToShare = @[textToShare, imageToShare];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
[self presentViewController:activityViewController animated:TRUE completion:nil];
}
如果您希望排除任何activity types,您可以添加:
// add an array of activity types to exclude
activityViewController.excludedActivityTypes = @[UIActivityTypeMail, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo];
在展示 activityViewController 之前。
另外,要查看“在 Facebook 上分享”选项,您需要在设备上登录 Facebook,如 this answer 所述。
///
选项 2 - 没有 UIActivityController
如果您不想使用 Activity Controller,而只是直接打开 iOS 社交分享对话框,您可以通过导入 Social 框架然后使用 Social Compose View Controller (SLComposeViewController) 来做到这一点
// import Social framework
#import <Social/Social.h>
// check if there is an account for Facebook
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewController *fbController=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// set up a completion handler (optional)
SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){
[fbController dismissViewControllerAnimated:YES completion:nil];
switch(result){
case SLComposeViewControllerResultCancelled:
default:
break;
case SLComposeViewControllerResultDone:
break;
}};
[fbController addImage:imageToPost];
[fbController setInitialText:textToPost];
[fbController addURL:urlToPost];
[fbController setCompletionHandler:completionHandler];
[self presentViewController:fbController animated:YES completion:nil];
}
【讨论】: