2014-11-17 2 views
6

Ich mag präsentieren und den Standard „Anteile an anderem Service“ Blatt um gemeinsame Nutzung zu ermöglichen, verwenden, um Twitter, Facebook, E-Mail usw.ios8 - wie das Standard-Freigabeblatt zu zeigen

Ich verstehe nicht, heraus, wie man diese Ansicht von meiner App zeigt - wie kann ich das tun?

+3

Wahrscheinlich 'UIActivityViewController'. – rmaddy

Antwort

19

Sie können die einfache Tätigkeit Controller verwenden, um Standard-Sharing-Apps verwenden:

NSArray *activityItems = [NSArray arrayWithObjects:shareString, shareImage, shareUrl, nil]; 
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; 
activityViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 

[self presentViewController:activityViewController animated:YES completion:nil]; 

Und Sie können zu seiner Fertigstellung Handler:

[activityViewController setCompletionHandler:^(NSString *act, BOOL done) 
    { 
       //Code here when the action performed. 

    }]; 

Diese alle Standard-Freigabe Anwendungen zeigen.

3

Hier ist eine Lösung für ein Pop-up "Share" von einem UIBarButtonItem ausgelöst, die auf iPhone und iPad funktioniert:

// "Share" action 
- (IBAction)share:(UIBarButtonItem *)sender { 
    NSString* title = "Content Title"; 
    NSString* link = "http://example.com/content.url"; 
    NSArray* dataToShare = @[title, link]; 

    UIActivityViewController* activityViewController = 
    [[UIActivityViewController alloc] initWithActivityItems:dataToShare 
             applicationActivities:nil]; 


    // This is key for iOS 8+ 
    activityViewController.popoverPresentationController.barButtonItem = sender; 

    [self presentViewController:activityViewController 
         animated:YES 
        completion:^{}]; 
} 
0

Hier ist ein einfaches Beispiel:

let activityViewController = UIActivityViewController(activityItems: ["Share Me!"], applicationActivities: nil) 
activityViewController.completionWithItemsHandler = { [weak self] activityType, completed, returnedItems, activityError in 
    // Note: you won't need returnedItems in most cases 
    // It is included in this example for completion's sake 
} 
present(activityViewController, animated: true, completion: nil) 

vollständige Dokumentation von Der Completion-Handler ist hier verfügbar: https://developer.apple.com/documentation/uikit/uiactivityviewcontrollercompletionwithitemshandler