iPhone - facebook 登录后,UISwitch 的状态未在 -(void)fbDidLogin 方法中设置为 'On'

标签 iphone ios xcode facebook uiswitch

我已经实现了 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/

相关文章:

iphone - 如何以编程方式分配/替换现有的 UITableView 为新的?

ios - SceneKit 中的土星环节点

ios - swift 代码在 Xcode 7 中不起作用(setCategory、AVFormatIDKey、AVAudioRecorder)

ios - 使用 setContentOffset 滚动到特定页面

ios - 无法提交对通过 iTunes Connect 提交的 iPhone 应用程序的修复

c++ - 对于不熟悉实践的 C++ 开发人员来说,重新投入其中的好项目/方式是什么?

iphone - UIActivityIndi​​cator 没有动画

ios - 如何检测与当前设备的 MCSession 的非编程断开连接?

ios - AFJsonRequest 和 AFHttpClient 一起工作吗?

c++ - Xcode C++::架构 x86_64 的重复符号