2013-06-10 2 views
0

Я использую Social framework в моем проекте (iOS6), так что пользователь может сделать сообщения на Facebook или Twitter.Социальная структура - как знать, если сообщение было отправлено или не

Мой вопрос в том, есть ли способ узнать, отправил ли пользователь сообщение в социальную сеть или он отменил его и ничего не опубликовал?

Я использую этот код, чтобы разделить сообщения на Twitter:

-(IBAction)askOnTwitter 
{ 
    if (SYSTEM_VERSION_LESS_THAN(@"6.0")) 
    { 
     [self showErrorAlert]; 
     twitterButton.enabled = NO; 
     return; 
    } 

    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
    { 
     slComposeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 

     [slComposeViewController setInitialText:@"Hey"]; 

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

     // So have user published a post or he haven't? How to know? 
    } 
} 

Знает ли кто-трюк? Заранее спасибо.

ответ

2

Вы можете установить обработчик завершения для своего контроллера представления компоновки. Там вы получите результат SLComposeViewControllerResultDone или SLComposeViewControllerCancelled

__block __weak SLComposeViewController *slComposeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 

[slComposeViewController setCompletionHandler:^ 
    (SLComposeViewControllerResult result){ 

     if (result == SLComposeViewControllerResultDone) { 
      NSLog(@"Done successfully"); 
     } 
     else{ 
      NSLog(@"Cancelled"); 
     } 

     [slComposeViewController dismissViewControllerAnimated:YES completion:nil]; 
    }]; 
+0

Спасибо, Анил. Работает как шарм. Но как я могу избавиться от предупреждения, которое «фиксирует себя в этом блоке, вероятно,» на последней строке? Благодарю. – SmartTree

+0

Сделайте это __weak weakSelf = self –

+0

Собственно, я обновлю свой ответ –