2012-10-09 15 views
7

こんにちは私はiOSアプリで2つのUIButtonを持っています。 1つは、Twitterに投稿することです。もう1つは、Facebookに投稿することです。 Facebookのボタンは完璧に機能しますが、ツイートは問題を解決しています。つぶやいたテキストが表示されますが、キャンセルボタンをタップすると解除されます。送信をタップすると、ツイートが送信され、シートが破棄されますが、アプリがフリーズして応答しなくなります。私は、コードツイートを送信した後にアプリがフリーズする

- (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

はその –

+4

には、以下の記事を参照してください... Facebookのために必要ではないことを、私のためにこの問題を修正し、switchステートメントの後にしかしその奇妙なコードを解任入れhttp://stackoverflow.com/questions/12617490/twitter-post-ios6 -cancel-button-issue?rq = 1 – sjbuchanan007

+0

TwitterのResultCancelledとResultDoneの両方で必要ですが、Facebookは必要ありません – RanLearns

関連する問題