检测Facebook登录失败

检测Facebook登录失败,facebook,parse-platform,facebook-ios-sdk,Facebook,Parse Platform,Facebook Ios Sdk,我在我的应用程序中使用了PFLogInViewController子类,允许用户使用Facebook登录,这非常有效,但是如果用户改变主意,拒绝我的应用程序访问Facebook帐户,登录将停止工作(如预期的那样),但加载指示器只是旋转。我从来没有收到一个错误告诉我它无法登录,这只是一个无限循环 知道如何检测故障并阻止UI显示加载指示器吗 代码如下,只是简单的子类化和一些视觉上的调整 - (void)viewDidLoad { [super viewDidLoad]; // C

我在我的应用程序中使用了
PFLogInViewController
子类,允许用户使用Facebook登录,这非常有效,但是如果用户改变主意,拒绝我的应用程序访问Facebook帐户,登录将停止工作(如预期的那样),但加载指示器只是旋转。我从来没有收到一个错误告诉我它无法登录,这只是一个无限循环

知道如何检测故障并阻止UI显示加载指示器吗

代码如下,只是简单的子类化和一些视觉上的调整


- (void)viewDidLoad
{
    [super viewDidLoad];

    // Customize the default parse login view
    [self setupUI];
}

- (void)setupUI {
    [self.logInView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg"]]];
    [self.logInView setLogo:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"fdbk_logo"]]];

    // Set buttons appearance
    [self.logInView.facebookButton setImage:nil forState:UIControlStateNormal];
    [self.logInView.facebookButton setImage:nil forState:UIControlStateHighlighted];
    [self.logInView.facebookButton setBackgroundImage:[UIImage imageNamed:@"fb_login_btn"] forState:UIControlStateNormal];
    [self.logInView.facebookButton setTitle:@"" forState:UIControlStateNormal];
    [self.logInView.facebookButton setTitle:@"" forState:UIControlStateHighlighted];
}

这可能不是您想要的解决方案,但只是我的意见:

我喜欢解析,但我不久前就停止使用它们的内置控制器(PFLogin/Signup、PFQueryTableView等),因为虽然它们提供了良好的开箱即用功能,但它们太不完整,无法在生产应用程序中使用。在很多情况下,它们只提供您所需的90%(如您现在的情况),虽然它们确实比自己滚动节省了一些时间,但一旦您自己做了,您就可以定制一些您想要的东西,并在将来重复使用

- (void)sessionStateChanged:(FBSession *)session state:(FBSessionState) state error:(NSError *)error {

     switch (state) {

          case FBSessionStateClosedLoginFailed:
               //login failed, do whatever you need to do
               break;
          default:
               break;

      }
}