この質問への答えは、FBSessionDelegate
との両方として機能するシングルトンを作成することにあり、プログラムの周りにFBRequestDelegate
1つのインスタンスを渡すことができます。Facebook
シングルトンに電話FacebookVideoUploader
し、アプリのデリゲートで次のように電話しました。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[[FacebookVideoUploader sharedInstance] facebook] handleOpenURL:url];
それでおしまい。これにより、アプリデリゲートが整理され、シングルトンがデリゲートメソッドを処理できるようになります。
ビデオのアップロードを処理するViewControllerの実装ファイルに、次のように記述します。
- (IBAction)shareWithFacebook:(UIButton *)sender {[[FacebookVideoUploader sharedInstance] postVideoToFacebook]; }
それでおしまい。すべてのデリゲートメソッドとセッションメソッド、およびpostVideoToFacebookはFacebookVideoUploader
シングルトンで処理されます。
これにより、ユーザーはFacebookにリダイレクトされることなくアプリにログインでき、ビデオを共有することを決定するとすぐに認証できるようになります。