Как получить только кнопку действия поделиться Facebook от UIActivityViewController
У меня есть такой случай:
- В приложении я создаю UIButton, когда при щелчке появится всплывающее окно Facebook, например UIActivityViewController. Но я не знаю, получить всплывающее окно поделиться Facebook от UIActivityViewController. Мне нужна помощь всем.
СПАСИБО ОГРОМНОЕ!!!
1 ответ
Вам нужно создать 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];
}
Если вы хотите исключить какие-либо виды деятельности, вы можете сделать это, добавив:
// add an array of activity types to exclude
activityViewController.excludedActivityTypes = @[UIActivityTypeMail, UIActivityTypeAssignToContact, UIActivityTypePrint, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo];
перед представлением ActivityViewController.
Кроме того, чтобы увидеть опцию "Поделиться в Facebook", вам необходимо войти в Facebook на устройстве, как указано в этом ответе.
///
Вариант 2 - без UIActivityController
Если вы не хотите использовать контроллер активности, а просто откроете диалог обмена социальными ресурсами 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];
}