Search code examples
objective-ciostwitterios6

TWTweetComposeViewController deprecated in IOS6


My code is working as expected just that I need to get rid of this warning message. TWTeetComposeViewController deprecated in IOS6. Any replacement for this built-in view controller in ios6?

Here is my sample code.

if ([TWTweetComposeViewController canSendTweet]) {
    // Initialize Tweet Compose View Controller
    TWTweetComposeViewController *vc = [[TWTweetComposeViewController alloc] init];
    // Settin The Initial Text
    [vc setInitialText:@"This tweet was sent using the new Twitter framework available in iOS 5."];
    // Adding an Image
    UIImage *image = [UIImage imageNamed:@"sample.jpg"];
    [vc addImage:image];
    // Adding a URL
    NSURL *url = [NSURL URLWithString:@"http://mobile.tutsplus.com"];
    [vc addURL:url];
    // Setting a Completing Handler
    [vc setCompletionHandler:^(TWTweetComposeViewControllerResult result) {
        [self dismissModalViewControllerAnimated:YES];
    }];
    // Display Tweet Compose View Controller Modally
    [self presentViewController:vc animated:YES completion:nil];
} else {
    // Show Alert View When The Application Cannot Send Tweets
    NSString *message = @"The application cannot send a tweet at the moment. This is because it cannot reach Twitter or you don't have a Twitter account associated with this device.";
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Oops" message:message delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
    [alertView show];
}

Solution

  • There're some change with using Social network between iOS 5 & iOS 6.
    1. About library: in iOS 6 we use Social framework instead of Twitter Framework.
    2. We use SLComposeViewController instead of TWTweetComposeViewController.
    3.Please compare some api with the following code:

    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
    
            SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
    
            SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
                if (result == SLComposeViewControllerResultCancelled) {
    
                    NSLog(@"Cancelled");
    
                } else
    
                {
                    NSLog(@"Done");
                }
    
                [controller dismissViewControllerAnimated:YES completion:Nil];
            };
            controller.completionHandler =myBlock;
    
            //Adding the Text to the facebook post value from iOS
            [controller setInitialText:@"Test Post from mobile.safilsunny.com"];
    
            //Adding the URL to the facebook post value from iOS
    
            [controller addURL:[NSURL URLWithString:@"http://www.mobile.safilsunny.com"]];
    
            //Adding the Image to the facebook post value from iOS
    
            [controller addImage:[UIImage imageNamed:@"fb.png"]];
    
            [self presentViewController:controller animated:YES completion:Nil];
    
        }
        else{
            NSLog(@"UnAvailable");
        }
    

    There's just a little differences, but they're more great.

    PREFERENCES: - safilsunny Tips: http://www.mobile.safilsunny.com/integrating-facebook-ios-6/

    Thanks,