7

こんにちは、iOS アプリに 2 つの UIButton があります。1 つは Twitter に投稿する方法、もう 1 つは Facebook に投稿する方法です。Facebookボタンは完全に機能しますが、ツイートは私にいくつかの問題を引き起こしています。ツイートシートは入力されたテキストで開きますが、キャンセルボタンを2回タップして閉じる必要があります。送信をタップすると、ツイートが送信され、シートが閉じられますが、アプリがフリーズして応答しなくなります。両方のコードを含めました

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

}];
}
4

1 に答える 1

18

ViewController「myTweet」を提示しています

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

しかし、completionHandlerにはdismiss...ステートメントはありません

[self dismissViewControllerAnimated:YES completion:nil];
于 2012-10-25T08:22:05.070 に答える