アプリに Facebook ログインを実装しました。
1----> Facebook のログインを行うことができましたが、その後、ログインしたユーザーはアプリを続行できます。つまり、3 つのタブ項目を持つ tabbarController が表示され、同時に Facebook のユーザーの詳細 (メール、名、姓など) を取得する必要があります。 )
しかし、詳細を取得できませんでした。どこが間違っているのかわかりません。
私のViewController.mで:
- (IBAction)performLogin:(id)sender
{
AppAppDelegate *appDelegate = (AppAppDelegate *) [[UIApplication sharedApplication] delegate];
[appDelegate openSessionWithAllowLoginUI:YES];
UITabBarController *tabBarController=[[UITabBarController alloc]init];
SearchViewController *searchViewController=[[SearchViewController alloc]initWithNibName:@"SearchViewController" bundle:nil];
UProfile *uprofile=[[UProfile alloc]initWithNibName:@"UProfile" bundle:nil];
userprofile.title=@"My Profile";
LogOut *logout=[[LogOut alloc]initWithNibName:@"LogOut" bundle:nil];
logout.title=@"Sign out";
tabBarController.viewControllers=[NSArray arrayWithObjects:searchViewController,uprofile,logout, nil];
[self presentModalViewController:tabBarController animated:YES];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(sessionStateChanged:)
name:FBSessionStateChangedNotification
object:nil];
}
- (void)sessionStateChanged:(NSNotification*)notification {
if (FBSession.activeSession.isOpen) {
[FBRequestConnection
startForMeWithCompletionHandler:^(FBRequestConnection *connection,
id<FBGraphUser> user,
NSError *error) {
if (!error) {
NSString *fbUserEmail= @"";
NSLog(@"%@",user);
fbUserEmail=[user objectForKey:@"email"];
AppAppDelegate *appDelegate = (AppAppDelegate *) [[UIApplication sharedApplication] delegate];
appDelegate.fbEmail=fbUserEmail;
}
}
];
}
}
しかし、ここではFacebookのログインページを表示せずにtabbarControllerを取得しており、ユーザーの詳細を取得できません。
Facebookのログインページを最初に表示してから、ユーザーの詳細を含むtabbarControllerを表示するにはどうすればよいですか? Facebookへのログインに成功した後、最初のtabitem(対応するビュー)が選択されたtabbarcontrollerでアプリを続行するにはどうすればよいですか?
この問題を整理するのを手伝ってください...お願いします