Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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];
}
like image 947
user1688346 Avatar asked Oct 01 '12 21:10

user1688346


2 Answers

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,

like image 195
MOBYTELAB Avatar answered Nov 05 '22 21:11

MOBYTELAB


Yes, you're supposed to use the Social Framework on iOS 6. This is thanks to the Facebook integration now present on iOS. You will be able to use Twitter and Facebook from there.

like image 36
Andy Ibanez Avatar answered Nov 05 '22 23:11

Andy Ibanez