2013-11-14 3 views
4

Я создаю собственное приложение IOS7 от имени клиента - его для инструкторов по фитнесу.IOS7 - SLComposeViewController - Включает ссылки/изображения?

Вкратце просит, чтобы клиенты могли совместно обмениваться обновлениями прогресса, которые включают ссылку на сайт инструкторов, чтобы помочь продвижению по службе, например, 'Joe ran 3000 miles with the help of Debbie Personal Trainer' и в идеале небольшой рисунок тренера.

Я просмотрел SLComposeViewController и могу легко создать строку твита, но я не знаю, как добавить к ней URL-адрес и изображение. Кто-нибудь знает, возможно ли это?

ответ

22

Импортные рамки <Twitter/Twitter.h> и <Social/Social.h>.

-(void)sendFacebook:(id)sender { 

    SLComposeViewController *composeController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 

    [composeController setInitialText:@"look me"]; 
    [composeController addImage:[UIImage imageNamed:@"image.png"]]; 
    [composeController addURL: [NSURL URLWithString:@"http://www.apple.com"]]; 

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

    SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){ 
     if (result == SLComposeViewControllerResultCancelled) { 
      NSLog(@"delete"); 
     } else { 
      NSLog(@"post"); 
     } 

    // [composeController dismissViewControllerAnimated:YES completion:Nil]; 
     }; 
     composeController.completionHandler =myBlock; 
} 

- (void)sendTwitter:(id)sender { 

    SLComposeViewController *composeController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 

    [composeController setInitialText:@"look me"]; 
    [composeController addImage:[UIImage imageNamed:@"image.png"]]; 
    [composeController addURL: [NSURL URLWithString: 
           @"http://www.apple.com"]]; 

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

    SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){ 
     if (result == SLComposeViewControllerResultCancelled) { 
      NSLog(@"delete"); 
     } else { 
      NSLog(@"post"); 
     } 
    // [composeController dismissViewControllerAnimated:YES completion:Nil]; 
     }; 
     composeController.completionHandler =myBlock; 
} 
+0

высший уровень ура! - только небольшая проблема - я получаю «нет видимого @interface для SLComposeViewControllerCompletionHandler» объявляет селектор увольнения диспетчера: анимированный – Dancer

+0

@ Dancer, извините, я смущен. Я отредактировал свой ответ, посмотрю на первые несколько строк, я изменил импорт, чтобы сделать – Ilario

+0

его строку - [composeController увольнениеПросмотр: composeController Animated: YES завершение: Nil]; это ошибка для меня с вышеуказанным - если я прокомментирую это, он все равно работает, хотя .. – Dancer

3

Это почти такой же ответ, как llario, но следует Apple, инструкция DOCS и использует оборонительное кодирование с некоторой дополнительной проверкой ошибок.

#import <Social/Social.h> 

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) { 
    SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 
    if (composeViewController) { 
     [composeViewController addImage:[UIImage imageNamed:@"MyImage"]]; 
     [composeViewController addURL:[NSURL URLWithString:@"http://www.google.com"]]; 
     NSString *initialTextString = @"Check out this Tweet!"; 
     [composeViewController setInitialText:initialTextString]; 
     [composeViewController setCompletionHandler:^(SLComposeViewControllerResult result) { 
      if (result == SLComposeViewControllerResultDone) { 
       NSLog(@"Posted"); 
      } else if (result == SLComposeViewControllerResultCancelled) { 
       NSLog(@"Post Cancelled"); 
      } else { 
       NSLog(@"Post Failed"); 
      } 
     }]; 
     [self presentViewController:composeViewController animated:YES completion:nil]; 
    } 
} 
Смежные вопросы