我的问题与this question非常相似,但是我发布了一个新问题,因为前面提到的答案似乎并没有解决我的问题。
我有一个多视图应用程序 - 第一个视图是用户登录到Facebook的位置,第二个视图是他选择图像并将其上传到那里。应用程序第一次运行时,一切正常,但是如果我返回登录视图并按下注销,则对sessionDidNotLogin
,sessionDidLogout
或session didLogin
的任何调用似乎都不起作用
我第一次发现,如果我NSLog(@"%@",session.delegates);
我有2个;我的LoginViewController和FBLoginButton。但是,除了第一次,相同的日志只打印LoginViewController而不是FBLoginButton。我想这是以某种方式连接的,但我不知道如何解决它。
我是否必须手动将FBLoginButton添加到会话代理中,或者我在这里做了其他错误的事情?
感谢您提供任何帮助/建议。
答案 0 :(得分:0)
由于a post from the Facebook developers forum,我发现了问题。 每次加载一个视图时,我都在创建一个新的会话实例(尽管我认为它是一个单例并且库应该已经处理它了。)
所以,为了使这项工作:
fbSession = [FBSession session];
if (!fbSession) {
fbSession = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain];
} else {
[[fbSession delegates] addObject:self];
}