2012-10-09 4 views
7

안녕하세요, iOS 앱에 두 개의 UIButton이 있습니다. 하나는 트위터에 게시하는 것이고 두 번째는 페이스 북에 게시하는 것입니다. 페이스 북 버튼은 완벽하게 작동하지만 트윗이 나에게 몇 가지 문제를 안고있다. 트윗 시트는 채워진 텍스트로 열리 며, 취소 버튼을 두 번 누르면 해제된다. 보내기를 탭하면 트윗이 전송되고 시트가 닫히지 만 내 앱이 정지되고 응답이 없습니다. 나는 코드트윗을 보내면 앱이 멈 춥니 다.

- (IBAction)postTweet:(id)sender { 

// if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]){ 

    myTweet = [[SLComposeViewController alloc]init]; 

    myTweet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; 

    NSString *tweetString = [[NSString alloc]initWithFormat:@"%@\n%@\nvia @ValuatorApp", pdOne.text, pdTwo.text]; 

    [myTweet setInitialText:tweetString]; 

    [myTweet addURL:[NSURL URLWithString:@"http://sjb007.me/TheValuator"]]; 

    [self presentViewController:myTweet animated:YES completion:nil]; 
// } 
[myTweet setCompletionHandler:^(SLComposeViewControllerResult result) { 

    NSString *output = [[NSString alloc]init]; 

    switch (result) { 
     case SLComposeViewControllerResultCancelled: 
      output = @"Twitter Post Cancelled"; 
      break; 
     case SLComposeViewControllerResultDone: 
      output = @"Twitter post Succesful"; 
      break; 
     default: 
      break; 
    } 
    NSLog(@"%@",output); 

}]; 
} 

- (IBAction)postFacebook:(id)sender { 

// if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]){ 

    myTweet = [[SLComposeViewController alloc]init]; 

    myTweet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 

if (pd3 != 0) { 
    NSString *facebookString = [[NSString alloc]initWithFormat:@"%@\n%@\n%@", pdOne.text,pdTwo.text, pdThree.text]; 
    [myTweet setInitialText:facebookString]; 

} 
else if (pd3 == 0){ 
    NSString *facebookString = [[NSString alloc]initWithFormat:@"%@\n%@\n", pdOne.text,pdTwo.text]; 
    [myTweet setInitialText:facebookString]; 

} 

// [myTweet addImage:[UIImage imageNamed:@"Photo Jun 02, 22 46 37.jpg"]]; 

[myTweet addURL:[NSURL URLWithString:@"http://sjb007.me/TheValuator"]]; 

[self presentViewController:myTweet animated:YES completion:nil]; 
// } 
[myTweet setCompletionHandler:^(SLComposeViewControllerResult result) { 

    NSString *output = [[NSString alloc]init]; 

    switch (result) { 
     case SLComposeViewControllerResultCancelled: 
      output = @"Facebook Post Cancelled"; 
      break; 
     case SLComposeViewControllerResultDone: 
      output = @"Facebook post Succesful"; 
      break; 
     default: 
      break; 
    } 
    NSLog(@"%@",output); 

}]; 
} 
+1

정확한 데에 같은 문제, 수정 사항을 찾았습니까? –

답변

18

당신은의 ViewController "myTweet"

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

을 제시됩니다 두 비트를 포함하지 않은하지만이 기각됩니다 ... 문을 당신의 completionHandler

[self dismissViewControllerAnimated:YES completion:nil]; 
+2

전환 진술 후 해제 코드를 내게이 문제가 해결되었지만 이상한 것은 Facebook에 필요하지 않습니다 ... –

+4

다음 게시물보기 http://stackoverflow.com/questions/12617490/twitter-post-ios6 -cancel-button-issue? rq = 1 – sjbuchanan007

+0

이것은 ResultCancelled와 Twitter의 ResultDone 모두에서 필요하지만 Facebook은 필요하지 않습니다. – RanLearns

관련 문제