2013-07-04 5 views
2

Я в процессе добавления facebook в свою игру ios xcode. Я следовал некоторые учебники и такие, но я бегу в проблему, что они не сделали, когда пользователь входит в то этот метод должен быть вызван:Ошибка обратного вызова делегата Cocos2d

- (void) loginViewShowingLoggedInUser:(FBLoginView *)loginView 

Однако этот метод и два других методов, связанных с этот не называется. Этот метод следует вызывать, когда пользователь регистрируется на facebook с помощью кнопки входа fb. Я реализовал FBLoginViewDelegate в моем * .h, как показано ниже:

@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]; 
+0

Post код, в котором вы установить делегат и создать контроллер facebook. –

+0

см. Редактирование 1. Спасибо за ваш ответ. –

ответ

2

Вы устанавливаете делегата на openGLView. Это не эквивалентно HelloWorldLayer. Если вы создаете FBLoginView внутри HelloWorldLayer вам нужно сделать

loginview.delegate = self; 
+0

damit все, спасибо мужчина. Я сделал это, и все сработало. –

Смежные вопросы