2

嗨,我已经为 iOS 6 应用程序集成了 Facebook SDK。Facebook 身份验证和共享工作完美,但没有规定关闭 FB Dialogue box.ie。当 FB 对话框打开时,只有在身份验证成功后才会关闭。没有关闭或导航返回的规定。如何制作关闭按钮。我正在使用的代码片段如下所示。提前致谢。

-(NSDictionary *)shareFacebook
{

    NSDictionary *userInfo;
    if (FBSession.activeSession.isOpen)
    {

        if (FBSession.activeSession.isOpen)
        {

            [self.closeButton setHidden:NO];
            [FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> user, NSError *error) {

                NSUserDefaults *standardUserDefaults=[NSUserDefaults standardUserDefaults];
                [standardUserDefaults setObject:user forKey:@"fbUserInfo"];



                    [self.manager authenticateUserUsingFB:[user objectForKey:@"email"]];


            }];
        }

    }
    else{
        NSLog(@"fb session not active.");
        [self openSessionWithAllowLoginUI:YES];
    }
    return userInfo;
}

- (void)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {

    NSArray *permissions = [[NSArray alloc] initWithObjects:

                            @"user_photos",
                            @"publish_actions",
                            @"read_stream",
                            @"friends_photos",
                            @"email" ,nil];

    [FBSession setActiveSession:[[FBSession alloc] initWithPermissions:permissions]];


    [[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorForcingWebView

                              completionHandler:^(FBSession *session,

                                                  FBSessionState state,

                                                  NSError *error) {

                                  NSLog(@" state=%d",state);
                                  if(FBSessionStateOpen)
                                  {
                                      [self shareFacebook];
                                  }
                              }];

}
4

2 回答 2

5

通过将 FacebookSDKResources.bundle 文件从 FacebookSDK.framework/Resources 文件夹拖到 Project Navigator 的 Frameworks 部分来添加 Facebook SDK for iOS 资源包。 http://developers.facebook.com/docs/getting-started/facebook-sdk-for-ios/

于 2013-05-14T11:40:36.773 回答
2

我知道是什么导致了这个错误!按钮和图标视图(对话框右上角有两个视图——关闭按钮和图标视图)实际上是存在的(可以点击查看)但不可见。这是因为该项目无法看到位于FBDialog.bundle. 您应该从包中复制这些图像并将它们添加到项目中,然后直接设置图像。您的 init 方法可能如下所示:

 //This is your FBDialog.m file
- (id)init {
  if (self = [super initWithFrame:CGRectZero]) {
    .........

    UIImage* iconImage = [UIImage imageNamed:@"fbicon.png"];
    UIImage* closeImage = [UIImage imageNamed:@"close.png"];

    _iconView = [[UIImageView alloc] initWithImage:iconImage];
    [self addSubview:_iconView];

    _closeButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
    [_closeButton setImage:closeImage forState:UIControlStateNormal];
    [_closeButton addTarget:self action:@selector(cancel)
      forControlEvents:UIControlEventTouchUpInside];

    .........

可能有更好的方法来修复这个错误,但这对我有用。

于 2012-12-07T09:41:16.193 回答