不确定您说的是哪个示例,但您应该创建 Facebook 对象并将其存储在一个中心位置,例如您的模型或UIApplicationDelegate。然后可以通过单例访问它,因此您始终可以访问它,例如:
[[UIApplication sharedApplication] delegate].facebook
因此,您可以从任何需要的视图控制器访问 facebook 对象。
当你做类似的事情时
NSArray* permissions = [[NSArray arrayWithObjects:@"email", @"read_stream", @"publish_stream", nil] retain];
[facebook authorize:permissions delegate:self];
指定delegate:self 意味着您将实现该类中的方法,Facebook 可以调用这些方法来通知您某些事件。其中一种方法是fbDidLogin,在那里你可以做任何你需要做的事情:
-(void)authorizeFacebook {
NSArray* permissions = [NSArray arrayWithObjects:@"email", @"read_stream", @"publish_stream", nil];
[facebook authorize:permissions delegate:self];
}
// if the authorization succeeds it will come back to your app and call the method below
-(void)fbDidLogin {
// switch view, call the facebook graph, or do whatever else you like
}
您可以在应用程序委托本身或视图控制器中执行此操作。
您可以通过检查 facebook SDK 的 .h 文件来查看 facebook 委托方法:Facebook.h、FacebookRequest.h 等。
编辑
并且您的 handleOpenURL: 方法应该与 fb 的示例中的完全一样(假设您没有处理其他 url 方案):
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [facebook handleOpenURL:url];
}
http://developers.facebook.com/docs/guides/mobile/#ios