2

ソーシャル フレームワークを使用して、Cocos2d 内から "Post To Facebook" ビュー コントローラーを表示しようとしています。これは、ストーリーボード アプリで通常使用するコードです。

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
    SLComposeViewController *facebook = [[SLComposeViewController alloc] init];
    facebook = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    [facebook setInitialText:[NSString stringWithFormat:@"text"]];
    [self presentViewController:facebook animated:YES completion:nil];
    [facebook setCompletionHandler:^(SLComposeViewControllerResult result) {
        NSString *output;
        switch (result) {
            case SLComposeViewControllerResultCancelled:
                output = @"Action Cancelled";
                break;
            case SLComposeViewControllerResultDone:
                output = @"Posted";
                NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
                [ud setInteger:1 forKey:@"Shared"];
                [ud synchronize];
            default:
                break;
        }
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook" message:output delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
        [alert show];
    }];
}

Cocos2d 内からこれを起動して実行するにはどうすればよいですか? 現在、行の警告をスローします

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

前もって感謝します

4

2 に答える 2

10

[CCDirector sharedDirector]cocos2d 2.0では、の代わりに使用できますself

[[CCDirector sharedDirector] presentViewController:facebook animated:YES completion:nil];

CCDirectorから継承するため、これは機能しUIViewControllerます。

于 2012-11-30T04:43:51.083 に答える
0

This works for me....

-(void) facebookWithInitialText:(NSString*) text {

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

    CCLOG( @"can post to Facebook");

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

    SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    [controller setInitialText:text]; // set initial text 
    [controller addImage:[UIImage imageNamed:@"Icon-72.png"]];  //add an image 
    [controller addURL:[NSURL URLWithString:@"http://www.cartoonsmart.com"]];  //add a URL to it

    [[app navController] presentViewController:controller animated:YES completion:nil ];


    [controller setCompletionHandler:^(SLComposeViewControllerResult result){

        [[app navController] dismissModalViewControllerAnimated:YES];

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

        switch (result) {
            case SLComposeViewControllerResultCancelled:
                outout = @"Post Cancled";
                break;
            case SLComposeViewControllerResultDone:
                outout = @"Post Done";

            default:
                break;
        }
        UIAlertView *myalertView = [[UIAlertView alloc]initWithTitle:@"Facebook" message:outout delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
        [myalertView show];
    }];

}  else {

    CCLOG( @"Facebook not accessible or one account not setup.");
}

}

于 2013-03-25T15:11:30.513 に答える