(その後、フィードバックをいただければ、回答を編集します。)
Facebook SDKはあまり使用していませんが、試したときにその問題が発生したことを覚えています。
実装は- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
アプリデリゲートにある必要があります
1つのviewController(たとえばMyFacebooViewController)でFacebookインスタンスにアクセスする必要がある場合
あなたはこのようなものを持つことができます
#import <UIKit/UIKit.h>
#import "FBConnect.h"
@interface MyFacebookViewController : UIViewController <FBSessonDelegate, FBRequestDelegate>
@property (nonatomic, strong) Facebook *facebook;
...
@end
そして、.mファイルにはこれが含まれている必要があります
#import "MyFacebookViewController.h"
#import "MyAppDelegate.h"
@implementation MyFacebookViewController
@synthesize facebook = _facebook;
-(Facebook *)facebook
{
if(!_facebook){
_facebook = [[Facebook alloc] initWithAppId:MY_APP_ID andDelegate:self];
}
return _facebook;
}
-(void)viewDidLoad
{
[super viewDidLoad];
((MyAppDelegate *)([[UIApplication sharedApplication] delegate])).facebookViewController = self;
...
}
そしてもちろん、FBSessionDelegateメソッドとFBRequestDelegateメソッドを実装する必要があります
AppDelegateで:
#import <UIKit/UIKit.h>
#import "MyFacebookViewController.h"
@interface MyAppDelegate : UIResponder <UIApplicationDelegate>
...
@property (strong, nonatomic) MyFacebookConnectViewController *facebookViewController;
@end
そして、あなたが置く必要があるのは実装ファイルにあります- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
@implementation MyAppDelegate
@synthesize facebookViewController = _facebookViewController;
...
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [self.facebookViewController.facebook handleOpenURL:url];
}
それでも問題が解決しない場合はお知らせください。