Adjuntar una image a la publicación de twitter

¿Cómo puedo adjuntar una image a una publicación de Twitter como lo hace el iPhone incorporado en la aplicación de fotografía? Si algún cuerpo tiene algún código de muestra que será de gran ayuda. Gracias.

Las otras respuestas están sugiriendo TWTweetComposeViewController , sin embargo, si usted puede evitar el uso de esta class, ahora está en desuso en iOS 6,

Vea aquí: TWTweetComposeViewController en desuso en iOS6

Y de Apple ellos mismos, WWDC 2012, session 306 presentación PDF :

Twitter Framework

• El marco de Twitter está en desuso.

• No use TWTweetComposeViewController

Para usar Twitter ahora debe usar la class SLComposeViewController del marco Social , su uso es casi idéntico a TWTweetComposeViewController .

Es posible que tengas que admitir iOS 5, en cuyo caso no tienes otra opción para usar la class TWTweetComposeViewController , pero debes esforzarte para verificar si SLComposeViewController usa eso si está disponible, simplemente porque esto te ahorrará time y esfuerzo. el futuro cercano cuando se abandona el soporte para iOS 5, la class TWTweetComposeViewController realmente puede TWTweetComposeViewController ido. Si confías en el marco de Twitter ahora por simplicidad, ya que funciona en iOS 5 y 6, estás siendo corto de vista y tendrás problemas en algún momento, solo hay algunas líneas más para hacer esto y significará que has ganado ' No necesite preocuparse por futuras versiones de iOS SDK.

Debe importar Twitter.framework y Social.framework , marcarlos como importaciones opcionales (no es obligatorio).

Código de ejemplo:

 UIImage *myImage = [...]; // an image if( NSClassFromString(@"SLComposeViewController") ){ // We have the Social framework in our iOS system // iOS 6 and later will use this if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]){ SLComposeViewController *twitterCompose = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; [twitterCompose addImage:myImage]; // Adding your UIImage twitterCompose.completionHandler = ^(SLComposeViewControllerResult result){ // Handle result, dismiss view controller [self dismissViewControllerAnimated:YES completion:nil]; }; [self presentViewController:twitterCompose animated:YES completion:nil]; }else{ // the user does not have Twitter set up } }else if( NSClassFromString(@"TWTweetComposeViewController") ){ // We don't have the Social framework, work with the Twitter framework // iOS 5 only will use this if( [TWTweetComposeViewController canSendTweet] ){ TWTweetComposeViewController *twitterCompose = [[TWTweetComposeViewController alloc] init]; [twitterCompose addImage:myImage]; twitterCompose.completionHandler = ^(TWTweetComposeViewControllerResult result){ // Handle result, dismiss view controller [self dismissViewControllerAnimated:YES completion:nil]; }; [self presentViewController:twitterCompose animated:YES completion:nil]; }else{ // the user hasn't go Twitter set up on their device. } }else{ // Wow you're going retro with this app, // you must be on iOS 4 if you ever get here... } 

Aquí cómo lo uso:

  NSLog(@"Ready to Tweet."); TWTweetComposeViewController *tweetComposer = [[TWTweetComposeViewController alloc] init]; [tweetComposer setInitialText:[NSString stringWithFormat:@"My message"]]; [tweetComposer addImage:[UIImage imageNamed:@"114x114"]]; [tweetComposer addURL:[NSURL URLWithString:@"http://myPage"]]; tweetComposer.completionHandler = ^(TWTweetComposeViewControllerResult result){ if(result == TWTweetComposeViewControllerResultDone){ NSLog(@"Tweeted."); } else if(result == TWTweetComposeViewControllerResultCancelled) { NSLog(@"Cancelled."); } [self.navigationController dismissViewControllerAnimated:YES completion:nil]; }; [self presentModalViewController:tweetComposer animated:YES]; 

Si está utilizando ios 5.0, puede publicar imágenes directamente como

Agregue Framwork twitter.framework

Importar Twitter / TWTweetComposeViewController.h

 -(void)postToTwittert { Class TWTweetComposeViewControllerClass = NSClassFromString(@"TWTweetComposeViewController"); if (TWTweetComposeViewControllerClass != nil) { if([TWTweetComposeViewControllerClass respondsToSelector:@selector(canSendTweet)]) { TWTweetComposeViewController *twitter = [[TWTweetComposeViewController alloc] init]; [twitter setInitialText:@"text"]; [twitter addImage:[UIImage imageNamed:@"imageame"]]; [twitter addURL:[NSURL URLWithString:@"http://www.google.com"]]; [self presentViewController:twitter animated:YES completion:nil]; twitter.completionHandler = ^(TWTweetComposeViewControllerResult res) { if(res == TWTweetComposeViewControllerResultDone) { NSLog(@"success for twitter post"); } else if(res == TWTweetComposeViewControllerResultCancelled) { UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Canceled" message:@"Your Tweet was not posted" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alertView show]; } [self dismissModalViewControllerAnimated:YES]; }; } } } 

Llama a esta function donde deseas publicar Twitter.

y haz los cambios apropiados que quieras …

La mejor de las suertes..

Acabo de usar UIActivityViewController para publicar en Twitter ahora.

 UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[@"Default Text", [UIImage imageNamed:@"imageName"]] applicationActivities:nil]; [self presentViewController:controller animated:YES completion:nil]; 

Esto presentará un controller donde el usuario puede decidir qué hacer (Publicar en Twitter, Publicar en Facebook, etc.)

Luego usa la hoja de tuits del sistema, etc … para hacerlo.

No tiene que proporcionar el text pnetworkingeterminado. Esto se puede sobrescribir de todos modos.

Ah, también, no se requieren frameworks para esto.