不知道你在說什麼樣的例子,但是你應該在你的Model或UIApplicationDelegate
這樣的中心位置創建和存儲你的Facebook對象。然後,它會通過單身訪問,讓您始終能夠訪問它,例如:
[[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
我已經把它放到了appdelegate中,但它現在不會在登錄後立即返回到我的應用程序中。handleOpenURL方法要求對象* facebook *來處理它,但它現在不會踢現在... – 2011-05-18 06:55:21
你有沒有更新你的plist文件,如上面的鏈接所示。 – kball 2011-05-18 16:45:39