2012-11-17 8 views
19

Hallo wie werde ich benachrichtigt, wenn ein Tweet mit dem SLComposeViewController CompletionHandler abgeschlossen wurde. Hier ist der Code einen TweetSLComposeViewController CompletionHandler

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
    { 
     SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
     [tweetSheet setInitialText:@"Tweeting from my own app! :)"]; 
     [tweetSheet addURL:[NSURL URLWithString:@"www.someurl.com"]]; 

     [self presentViewController:tweetSheet animated:YES completion:NULL]; 
    } 

Antwort

49

die Antwort gefunden senden

- (void)showTweetSheet 
{ 
    // Create an instance of the Tweet Sheet 
    SLComposeViewController *tweetSheet = [SLComposeViewController 
             composeViewControllerForServiceType: 
             SLServiceTypeTwitter]; 

    // Sets the completion handler. Note that we don't know which thread the 
    // block will be called on, so we need to ensure that any UI updates occur 
    // on the main queue 
    tweetSheet.completionHandler = ^(SLComposeViewControllerResult result) { 
    switch(result) { 
     // This means the user cancelled without sending the Tweet 
     case SLComposeViewControllerResultCancelled: 
     break; 
     // This means the user hit 'Send' 
     case SLComposeViewControllerResultDone: 
     break; 
    } 

    // dismiss the Tweet Sheet 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self dismissViewControllerAnimated:NO completion:^{ 
     NSLog(@"Tweet Sheet has been dismissed."); 
     }]; 
    }); 
    }; 

    // Set the initial body of the Tweet 
    [tweetSheet setInitialText:@"just setting up my twttr"]; 

    // Adds an image to the Tweet. For demo purposes, assume we have an 
    // image named 'larry.png' that we wish to attach 
    if (![tweetSheet addImage:[UIImage imageNamed:@"larry.png"]]) { 
    NSLog(@"Unable to add the image!"); 
    } 

    // Add an URL to the Tweet. You can add multiple URLs. 
    if (![tweetSheet addURL:[NSURL URLWithString:@"http://twitter.com/"]]){ 
    NSLog(@"Unable to add the URL!"); 
    } 

    // Presents the Tweet Sheet to the user 
    [self presentViewController:tweetSheet animated:NO completion:^{ 
    NSLog(@"Tweet sheet has been presented."); 
    }]; 
} 
+0

Dank. löste meinen Zweck. – Itesh

+8

nur ein Kopf! Nach iOS7 dürfen wir den SLComposeViewController in unserem Completion-Handler nicht verwerfen. –

+1

Woher wissen wir, ob das Teilen über Facebook erfolgreich ist? – lenhhoxung

Verwandte Themen