适用于iPhone的FBConnect:sessionDidNotLogin,sessionDidLogout,会话didLogin第二次加载视图时未调用

时间:2010-04-15 14:00:32

标签: iphone facebook fbconnect

我的问题与this question非常相似,但是我发布了一个新问题,因为前面提到的答案似乎并没有解决我的问题。

我有一个多视图应用程序 - 第一个视图是用户登录到Facebook的位置,第二个视图是他选择图像并将其上传到那里。应用程序第一次运行时,一切正常,但是如果我返回登录视图并按下注销,则对sessionDidNotLoginsessionDidLogoutsession didLogin的任何调用似乎都不起作用

我第一次发现,如果我NSLog(@"%@",session.delegates);我有2个;我的LoginViewController和FBLoginButton。但是,除了第一次,相同的日志只打印LoginViewController而不是FBLoginButton。我想这是以某种方式连接的,但我不知道如何解决它。

我是否必须手动将FBLoginButton添加到会话代理中,或者我在这里做了其他错误的事情?

感谢您提供任何帮助/建议。

1 个答案:

答案 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];
  }