我已将 Facebook iOS SDK 添加到我的 xCode 项目中,因此它允许用户登录。但是,一旦用户登录,在同一 View Controller 中,他们的信息就会从他们的个人资料中更新,并且“登录”按钮将更改为“注销”。
但是,如果登录成功,我希望将用户重定向到 DashboardViewController。我该怎么做?
这是我的 .m 文件
#import "ViewController.h"
#import "FriendsViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.delegate = [[UIApplication sharedApplication] delegate];
self.facebook = [self.delegate facebook];
self.facebook.delegate = self;
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.loginButton setTitle:[self.facebook loginLabel] forState:UIControlStateNormal];
self.userProfileImage.profileID = [self.facebook userProfilePicture].profileID;
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// Yes, so just open the session.
[self.facebook login];
}
}
- (IBAction)performLogin:(id)sender
{
if([self.facebook status] == logOff)
{
[self.facebook login];
}
else
{
[self.facebook logout];
}
}
- (void)loginFacebookStatusUpdate
{
[self.loginButton setTitle:[self.facebook loginLabel] forState:UIControlStateNormal];
self.userProfileImage.profileID = [self.facebook userProfilePicture].profileID;
self.userProfileLabel.text = [self.facebook userProfileName];
self.userProfileBirth.text = [self.facebook userProfileBirthday];
}
- (void)getFriends:(id)sender
{
if([self.facebook isLogged])
{
NSError *error;
NSString *query = QUERY_USER_FRIENDS;
[self.facebook submitQueryFQL:query error:error];
}
}
- (void)fetchFQLQueryResult:(NSArray *)result error:(NSError *)error
{
self.friends = [NSArray arrayWithArray:result];
FriendsViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"FriendsViewController"];
controller.friends = self.friends;
[self presentViewController:controller animated:YES completion:nil];
}
@end
最佳答案
我认为您正在使用 FBLoginView 进行 facebook 登录。因此,一旦完成登录过程,您就可以通过以下方法重定向用户。并且您需要提供给loginView。
- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView
{
dashBoardViewController *dashBoard = [[dashBoardViewController alloc]initWithNibName:@"dashBoardViewController" bundle:nil];
[self.navigationController pushViewController:dashBoard animated:YES];
}
以同样的方式,您也可以使用该方法来处理注销
- (void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView
{
// Your Code...
}
希望这会起作用。 :)
关于ios - Facebook 登录后重定向到新的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20578415/