xcode - Cocos2d 委托(delegate)回调不起作用

标签 xcode facebook cocos2d-iphone

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

- (void) loginViewShowingLoggedInUser:(FBLoginView *)loginView

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

@interface HelloWorldLayer : CCLayer <CCScrollLayerDelegate , FBLoginViewDelegate> {}

我已经导入了 facebook sdk:

#import <FacebookSDK/FacebookSDK.h>

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

谢谢

编辑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];

最佳答案

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

loginview.delegate = self;

关于xcode - Cocos2d 委托(delegate)回调不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17461752/

相关文章:

c# - fb.Get() 不存在?

ios - 如果在 iOS7 中后台运行 cocos2d 2.1 应用程序同时观看 Game Center 屏幕(排行榜、成就)会崩溃

ios - 使用服务器连接在我的 iOS 游戏上崩溃

ios - 在 ModuleName-Swift.h 中找不到 Xcode Pods 函数

ios - UISplitView showDetailViewController : not working on a device

c - 如何使用来自另一个系统的 c/Objective C 和 FTP/SSH 连接、打开、添加到系统上的 sqlite 数据库

ios - 重力Cocos2D?

xcode - 比使用 IB 更好的编辑复杂 UI 的方法

ios - React Native 获取网络请求失败 iOS

java - Android Studio Facebook SDK登录失败