Cocos2d 委托回调不起作用

Posted

技术标签:

【中文标题】Cocos2d 委托回调不起作用【英文标题】:Cocos2d Delegate Callback Not Working 【发布时间】:2013-07-04 04:12:02 【问题描述】:

我正在将 facebook 添加到我的 ios xcode 游戏中。我一直在关注一些教程等,但我遇到了一个他们没有遇到的问题,当用户登录时,应该调用这个方法:

- (void) loginViewShowingLoggedInUser:(FBLoginView *)loginView

但是,该方法和与该方法关联的其他两个方法并未被调用。当用户使用 fb 登录按钮登录 facebook 时,应调用此方法。我已经在我的 *.h 中实现了 FBLoginViewDelegate,如下所示:

@interface HelloWorldLayer : CCLayer <CCScrollLayerDelegate , FBLoginViewDelegate> 

我已经导入了 facebook sdk:

#import <FacebookSDK/FacebookSDK.h>

该项目是一个cocos2d游戏,这段代码都在我的主层中。当用户登录时,应该调用第一个方法,然后当他/她注销时,应该调用另一个方法;但没有调用来自 FBLoginViewDelegate 的方法。我认为 cocos2d 层正在干扰委托。

谢谢,

编辑1:

//this is were i create the button and set the delegate. I am using the newest fb sdk to do the rest. This is in my *.m.

FBLoginView *loginview = [[FBLoginView alloc] init];  
loginview.frame = CGRectOffset(loginview.frame, 5, 5);
loginview.delegate = [[CCDirector sharedDirector] openGLView];
[[[CCDirector sharedDirector] openGLView] addSubview:loginview];

【问题讨论】:

发布您设置委托的代码并创建 facebook 控制器。 查看编辑1。感谢您的回复。 【参考方案1】:

您正在将委托设置为openGLView。这不等同于HelloWorldLayer。如果您要在 HelloWorldLayer 中创建 FBLoginView,您需要这样做

loginview.delegate = self;

【讨论】:

该死,谢谢伙计。我进行了更改,一切正常。

以上是关于Cocos2d 委托回调不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Cocos2d 人像模式在 iPhone 上不起作用

CCNode删除不起作用的Cocos2d

Cocos2d FCM 推送通知不起作用

为啥 UICollectionView 的委托方法不起作用?

mailto:UIWebView 中的链接 - 不起作用

从 AppDelegate 调用委托函数不起作用