Как получить только кнопку действия поделиться 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];
}
Другие вопросы по тегам