如果用户已登录,如何隐藏FB登录视图?

时间:2013-07-26 19:48:38

标签: ios facebook cocoa-touch facebook-graph-api

默认情况下,如果用户经过身份验证,FBLoginView会显示“登录”或“注销”;

如果用户通过身份验证,我想要隐藏FBLoginView。我怎样才能做到这一点?如何检查用户是否已通过身份验证?

感谢

1 个答案:

答案 0 :(得分:0)

编辑: 在移动框架之前,您应该尝试执行以下任一操作:

loginview.hidden = YES;

[loginview setHidden:YES];

使用HelloFacebookSample,只需将FBLoginView框移出屏幕即可。如果用户从登录更改为已注销,则会触发委托方法(反之亦然)。

- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView {
    // first get the buttons set for login mode
    NSLog(@"FB logged in - token expiration: %@",[[FBSession activeSession] accessTokenData].expirationDate);

    //User logged in. Move FBLoginView off the screen
    loginview.frame = CGRectOffset(loginview.frame, 5, -100);

    self.buttonPostPhoto.enabled = YES;
    self.buttonPostStatus.enabled = YES;
    self.buttonPickFriends.enabled = YES;
    self.buttonPickPlace.enabled = YES;

    // "Post Status" available when logged on and potentially when logged off.  Differentiate in the label.
    [self.buttonPostStatus setTitle:@"Post Status Update (Logged On)" forState:self.buttonPostStatus.state];
}

- (void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView {

    //User logged off. Move FBLoginView back within view
    loginview.frame = CGRectOffset(loginview.frame, 5, 5);    // test to see if we can use the share dialog built into the Facebook application

    FBShareDialogParams *p = [[FBShareDialogParams alloc] init];
    p.link = [NSURL URLWithString:@"http://developers.facebook.com/ios"];
#ifdef DEBUG
    [FBSettings enableBetaFeatures:FBBetaFeaturesShareDialog];
#endif
    BOOL canShareFB = [FBDialogs canPresentShareDialogWithParams:p];
    BOOL canShareiOS6 = [FBDialogs canPresentOSIntegratedShareDialogWithSession:nil];

    self.buttonPostStatus.enabled = canShareFB || canShareiOS6;
    self.buttonPostPhoto.enabled = NO;
    self.buttonPickFriends.enabled = NO;
    self.buttonPickPlace.enabled = NO;

    // "Post Status" available when logged on and potentially when logged off.  Differentiate in the label.
    [self.buttonPostStatus setTitle:@"Post Status Update (Logged Off)" forState:self.buttonPostStatus.state];

    self.profilePic.profileID = nil;
    self.labelFirstName.text = nil;
    self.loggedInUser = nil;
}

在此示例中,您必须在头文件中声明FBLoginView *loginview