FBLoginView几次调用loginViewShowingLoggedInUser

时间:2013-05-24 14:42:25

标签: objective-c facebook-ios-sdk

我在2个不同的UIViewController中有2个FBLoginView:StartViewController和ProfilViewController。

当我登录StartViewController时,只调用此控制器中的委托方法loginViewShowingLoggedInUser。所以没关系

但是当我没有登录StartView时,我稍后在ProfilView中登录时,会调用两个方法loginViewShowingLoggedInUser:StartViewController中的一个和ProfilViewController中的另一个

在StartViewController中:

- (void) loginViewShowingLoggedInUser:(FBLoginView *)loginView
{
   NSLog(@"start");
}

在ProfilViewController中:

- (void) loginViewShowingLoggedInUser:(FBLoginView *)loginView
{
   NSLog(@"profile");
}

当我在ProfilViewController中登录时,两个方法都被调用,我在控制台中:启动配置文件

我如何才能在我登录的控制器中调用该方法而不是其他方法?

很多。

2 个答案:

答案 0 :(得分:1)

我只是遇到了同样的问题,我的解决方案是在应用程序中只有一个FBLoginView实例,将它存储在像SSUtils这样的单例类中,或者稍后从其他地方获取它。之后,您可以通过编程方式将它放在所需控制器的视图中(在您的情况下为StartViewController或ProfilViewController),并且不要忘记设置正确的委托。

希望它有所帮助。

答案 1 :(得分:0)

将实例作为appdelegate中的属性保留,并在applicationDidFinishLaunchingWithOptions中初始化它。无论您想要什么,只需参考appdelegate的实例并对其进行子视图,将委托设置为self。在dealloc中将委托设置为nil并从superview中删除。不要释放它。