跨多个视图请求和显示FB信息

时间:2014-12-02 17:22:26

标签: objective-c xcode facebook

我目前正在处理Xcode的Facebook框架。

到目前为止,我已设法完成所有操作并通过我的应用程序登录。用户按下登录按钮并进行身份验证后,屏幕会隐藏按钮,而是显示用户的姓名和个人资料图片。这正是我需要的。

现在我正在努力实现一个隐藏的侧边菜单(目前也在工作),它将像以前一样显示用户的姓名和个人资料图片。但是,我不知道如何再次掌握这些信息。

为清楚起见,这是我的相关代码;

初始登录页面 - 显示个人资料图片

-(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user{

self.fbProfilePicView.hidden = false;
self.fbProfilePicView.profileID = user.objectID;

}

菜单视图显示尝试 - 空白图片,错误=&#34;使用未声明的标识符&#39;用户&#39; &#34;

-(void)viewDidLoad{

self.menuProfilePic.profileID = user.objectID;

}

有谁知道如何使用已经显示过的数据?

1 个答案:

答案 0 :(得分:0)

对于在搜索类似问题时可能会发现此问题的任何人都可以。

获取数据时,您可以按我上面发布的方式进行操作,如下所示:

-(void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user{


//CODE TO EXECUTE 


}

这是您在批准的身份验证后使用的功能,因为它从登录过程中提供了信息。

要在获得批准后获取信息,您可以使用以下内容:

//Verify User is Logged In
if(FBSession.activeSession.isOpen){

    //Start Request for User's Information
    [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error){

        //Code to Execute
        if(!error){

            //CODE TO EXECUTE

        }

    }];

}

在这两种情况下,您只需在view.h文件中定义属性,然后使用view.m填充它们即可显示获取的数据:

<强> VIEW.H

@property (weak, nonatomic) IBOutlet UILabel *uiLabel;

@property (weak, nonatomic) IBOutlet FBProfilePictureView *fbProfilePicView;

VIEW.M - 在我写的内容&#34;执行代码&#34;

self.uiLabel.text = [NSString stringWithFormat:[user name]];

self.fbProfilePicView.profileID = user.objectID;

我希望我能以一种易于理解的方式写出来。我坚持这一点,所以我确信有人会从中受益。