我已经实现了 Facebook 登录并检查我的访问 token 的状态
-(void)fbDidLogin
现在,我有一个 UITableView
,其中有一个切换 Button
作为 UISwitch
,如果我有访问 token ,它就会打开。问题是,当我获得访问 token 时
-(void)fbDidLogin
方法被调用。在这里,我通过调用来设置切换按钮的开关
[self.switch setOn:YES animated:YES];
但这并没有发生。当我返回并再次打开该页面时,它显示正确的状态,但当我在 fbDidLogin
中设置它时却没有。任何猜测为什么会这样?
对于 facebook 身份验证,它会在应用程序之外返回,也许这就是它发生的原因?但我正在从 fbDidLogin
调用网络服务,它工作正常。
代码很简单
- (void)fbDidLogin {
[self.switch setOn:YES animated:YES];
}
最佳答案
你在哪里获得fb添加帖子通知的访问 token
[[NSNotificationCenter defaultCenter] postNotificationName:@"fbDidLogin"object:nil];
现在初始fb登录的方法是
-(void)fbLogin
{
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(fbDidLogin) name:@"fbDidLogin" object:nil];
// some logic for intial fb login page
}
同样在 fbDidLogin 方法中添加这个
- (void)fbDidLogin
{
[[NSNotificationCenter defaultCenter]removeObserver:self name:@"fbDidLogin" object:nil];
[self.switch setOn:YES animated:YES];
}
这里 fbDIdLogin 将在收到访问 token 后立即调用
如果访问 token 为 nil,可以对 fb 登录失败执行类似的过程。
关于iPhone - facebook 登录后,UISwitch 的状态未在 -(void)fbDidLogin 方法中设置为 'On',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10684330/