Facebook iOS SDK iPhone: 如何在多个视图控制器中调用?

4
我按照 Facebook 开发文档的官方指南实现了 iPhone 应用程序中的 SSO,但所有内容都在持有 "Facebook" 类的同一个视图控制器中。 现在考虑我想在导航控制器的第一个视图控制器中登录,然后在同一导航控制器的第三个视图控制器中调用 Graph API。 我认为我可以从一个控制器共享变量到另一个控制器,但我希望知道是否有一些“经典”的方法来实现这一点。事实上,我的目标是: 在应用程序启动时,我希望登录,然后在应用程序的任何地方调用 Graph API(或 FQL)。
谢谢
2个回答

10

我刚刚做了这个:

在 YourApp_AppDelegate.h 文件中:

#import "FBConnect.h"

Facebook *facebook;

@property (nonatomic, retain) Facebook *facebook;

在 YourApp_AppDelegate.m 文件中

@synthesize facebook;

然后在你的应用程序 didFinishLaunchingWithOptions: 函数中:

facebook = [[Facebook alloc] initWithAppId:@"YOUR_FACEBOOK_API"];

从您的viewController.h文件(任意一个)中,

#import "YourApp_AppDelegate.h"

YourApp_AppDelegate *appDelegate;

然后,在你的viewController.m中的viewDidLoad函数中:

appDelegate = (YourApp_AppDelegate *)[[UIApplication sharedApplication] delegate];
现在,每当你想引用你的Facebook单例时,只需像这样引用它:
[appDelegate.facebook authorize:nil delegate:self];

调用如下:[[Facebook alloc] initWithAppId:kAppId andDelegate:<(id<FBSessionDelegate>)]; 你必须指定一个代理。 - Van Du Tran

-1
facebook = [[Facebook alloc] initWithAppId:@"YOUR_FACEBOOK_API" andDelegate:self];

这是我的代码看起来的样子 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接