首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocos2d Xcode - SLComposeViewController黑屏

Cocos2d Xcode - SLComposeViewController黑屏
EN

Stack Overflow用户
提问于 2014-02-26 10:46:22
回答 1查看 310关注 0票数 0

我已经开发了一个Cocos2d游戏,通过在屏幕上创建这样一个按钮,我成功地让它呈现了一个SLComposeViewController

头文件如下所示:

代码语言:javascript
复制
@interface HighScores : Main
@end

@interface socialViewControllerAtTheBottomOfThisClass : UIViewController
@end

.m文件中的代码:

代码语言:javascript
复制
@implementation HighScores
- (init) {
UIButton *shareButton = [[UIButton alloc] initWithFrame:CGRectMake(screenWidth/2, screenHeight/2, 100, 30)];
[shareButton addTarget:self action:@selector(shareAction) forControlEvents:UIControlEventTouchUpInside];
}

- (void)shareAction {

// I created a ViewController class at the end of the .m file containing the social stuff
// but I did this and managed to get it to present the SLComposeViewController:

socialViewControllerAtTheBottomOfThisClass *bottomController = [[socialViewControllerAtTheBottomOfThisClass alloc] init];
[[[[CCDirector sharedDirector] openGLView] window] setRootViewController:bottomController];
[bottomController shareToFacebook];

}
}
@end

然后在ViewController实现的底部:

代码语言:javascript
复制
@implementation socialViewControllerAtTheBottomOfThisClass

- (void)shareToFacebook {
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[controller setInitialText:@"This is my facebook status!"];

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

controller.completionHandler = ^(SLComposeViewControllerResult result) {
switch(result) {
case SLComposeViewControllerResultCancelled: [self actionForCancelled];
break;
case SLComposeViewControllerResultDone: [self actionForDone];
break;
}};

}
}

- (void)actionForCancelled {
}
- (void)actionForDone {
}

@end

代码显示SLComposeViewController,但是在演示时,我会得到一个黑色的背景,在我点击Post或Cancel之后,屏幕将保持黑色。我正在考虑将rootViewController设置为HighScores,但考虑到它不是ViewController,我无法做到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-26 17:32:50

我现在没有代码,但我相信在过去,我创建了SLComposeViewController并将其添加为类似于以下的子视图:

代码语言:javascript
复制
[[[CCDirector sharedDirector] openGLView] addSubView:controller.view];

要删除它,您必须删除子视图。你也可以尝试:

代码语言:javascript
复制
AppController* app = (AppController*) [[UIApplication sharedApplication] delegate];
[[app navController] presentModalViewController:controller animated:YES];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22038986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档