ios - Facebook 登录后重定向到新的 ViewController

标签 ios iphone objective-c xcode facebook

我已将 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/

相关文章:

iphone - 无法加载从标识符为 "(null)"的包中的 Nib 引用的图像

objective-c - 主线程中的 dispatch_get_main_queue()

ios - 如何在 objective-c 中访问touchEnded中的数组元素

ios - 使用全局变量和常量是一种好习惯吗? ( swift 5)

ios - WatchKit 项目无法识别 presentAudioRecordingControllerWithOutputURL

ios - Apple Mach-O 链接器错误 Siri 目标意图扩展添加

iphone - CALayer 的 display/drawRect 方法中到底应该发生什么?

java - 计算手机实际行驶距离

ios - iOS 应用 (WatchKit) 需要一个 1024x1024 的应用商店图标

ios - 跟踪 iPhone 数据使用情况