Cocos2d委托回调不起作用

时间:2013-07-04 04:12:03

标签: xcode facebook cocos2d-iphone

我正在将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];

1 个答案:

答案 0 :(得分:2)

您正将委托设置为openGLView。这不等同于HelloWorldLayer。如果您要在FBLoginView内创建HelloWorldLayer,则需要执行

loginview.delegate = self;