2

TwitterAPIを使用してユーザーのハイスコアをツイートするプロジェクトがあります。そのプロジェクトはCocos2dv1.1を使用して作成されており、すべてが正常に機能しています。最近、Cocos2d v2.0を使用して新しいプロジェクトを開始し、他のプロジェクトの同じコードを使用して同じTwitter機能を組み込むことを試みましたが、ツイートボタンを押してもビューコントローラーが表示されません。以下は私が使用しているコードです...

if ([TWTweetComposeViewController canSendTweet]) // Check if twitter is setup and reachable
    {
        CCLOG(@"Can Tweet");
        TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];

        // set initial text
        NSString *theTweet = @"The message..."];
        [tweetViewController setInitialText:theTweet];

        // setup completion handler
        tweetViewController.completionHandler = ^(TWTweetComposeViewControllerResult result) {
            if(result == TWTweetComposeViewControllerResultDone) {
                // the user finished composing a tweet

            } else if(result == TWTweetComposeViewControllerResultCancelled) {
                 // the user cancelled composing a tweet
            }
            [viewController dismissViewControllerAnimated:YES completion:nil];
        };

        // present view controller
        [[[CCDirector sharedDirector] openGLView] addSubview:viewController.view];
        [viewController presentViewController:tweetViewController animated:YES completion:nil];

    }
else
{
    // Twitter account not configured, inform the user
    NSLog(@"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account setup");
}

「openGLView」が減価償却されていることを発見し、「view」に置き換えました。これはまだ機能しません。しかし、メソッドは発火しています。「CanTweet」という文字列を返し、出力ウィンドウに表示されるCCLOGを含めました。これを機能させる方法について誰かが何か提案がありますか?さらに情報を提供する必要がある場合はお知らせください。

ありがとう

4

1 に答える 1

1

cocos2d2.0でこのコードを使用してください

AppController * app = (((AppController*) [UIApplication sharedApplication].delegate));

        TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];

        [tweetViewController setInitialText:string];

        [tweetViewController setCompletionHandler:^(TWTweetComposeViewControllerResult result) {

            dispatch_async(dispatch_get_main_queue(), ^{

                {
                    if (result == TWTweetComposeViewControllerResultDone)
                    {
                        //successful
                        [[NSNotificationCenter defaultCenter] postNotificationName:@"PPTweetSuccessful" object:nil];

                    }
                    else if(result == TWTweetComposeViewControllerResultCancelled)
                    {
                        //Cancelled
                    }
                }

                [app.navController dismissModalViewControllerAnimated:YES];

                [tweetViewController release];
            });

        }];

        [app.navController presentModalViewController:tweetViewController animated:YES];
于 2012-11-28T10:20:04.307 に答える