ios - CCDirector 可能无法响应 presentviewcontroller :animation

标签 ios iphone facebook cocos2d-iphone

我是 cocoa2d 的新手。我正在尝试在 View 中使用 presentViewController 进行 Facebook 共享。

代码如下:

-(void)shareFB:(NSString *)text
{
    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

        SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

        [controller setInitialText:text];

        [[CCDirector sharedDirector]presentViewController:controller animated:YES completion:nil];
    }
    else
    {
        UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Sorry!" message:@"Please add Facebook account in settings menu" delegate:Nil cancelButtonTitle:@"OK" otherButtonTitles:Nil, nil];
        [alert show];
    }
}

它发出警告:

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

即:CCDirector 可能不会响应“presentviewcontroller:animated:completion:”

最佳答案

您好,我编辑了您的代码并稍加修改并粘贴在下方。一切正常

SLComposeViewController *faceBookPost = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

[faceBookPost setInitialText:@"I am playing game"];
[faceBookPost addURL:[NSURL URLWithString:@"http://www.yourlink.com"]];
[[CCDirector sharedDirector]presentViewController:faceBookPost animated:YES completion:nil];
            faceBookPost.completionHandler = ^(SLComposeViewControllerResult result)
            {
                [[CCDirector sharedDirector] resume];
                [[CCDirector sharedDirector] startAnimation];
                [[CCDirector sharedDirector]dismissViewControllerAnimated:YES completion:nil];
            };

否则按照这一步

像这样使用 uinavigationcontroller 在您的 AppController 中创建一个界面

@interface MyNavigationController : UINavigationController <CCDirectorDelegate>
@end 

@interface AppController : NSObject <UIApplicationDelegate>
{
UIWindow *window_;
MyNavigationController *navController_;
CCDirectorIOS   *director_;
}

在应用 Controller 的 didFinishLaunchingWithOptions 中设置导航 Controller

navController_ = [[MyNavigationController alloc] initWithRootViewController:director_];
navController_.navigationBarHidden = YES;
[director_ setDelegate:navController_];
// set the Navigation Controller as the root view controller
[window_ setRootViewController:navController_];

然后在你调用 SLComposeViewController 的类中呈现这样的 View

 AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
 [[app navController] presentViewController:faceBookPost animated:YES completion:nil];

两种类型都可以正常工作

关于ios - CCDirector 可能无法响应 presentviewcontroller :animation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24710191/

相关文章:

ios - XCode 9 : Module compiled with Swift 3. 0.2 无法在 Swift 3.2 中导入

ios - 数组中的最后一个元素为 nil

ios - 将 cocoaPods 用于谷歌 AdMob SDK

iphone - 将粘贴文本和图像都复制到 iphone 应用程序中的剪贴板

ios - 使用 Social Framework 从 Facebook 注销

facebook - 如何实现OG-Tags的国际化?

ios - 我应该如何构建应用程序以使用 JSON 作为媒介将数据从服务器发送到 iPhone?

javascript - 如何使用 jQuery/JavaScript 检测 ios 设备并仅隐藏 iPhone 和 iPad 的 Bootstrap 模式?

iphone - 如何从我的 CATiledLayer 中删除这些旋转伪影?

ios - 如何检查 Google/Facebook 帐户是否已用于在 Firebase Auth 上创建帐户