通过Facebook登录确认传递视图控制器

时间:2015-02-21 01:25:19

标签: ios xcode facebook swift

我是完全难倒的家伙,当有人成功登录facebook时,如何让我的应用程序从我的登录视图控制器推送到我的家庭视图控制器(使用swift)。我知道这是一个糟糕的灵感,但我想像Tinder那样登录体验,你必须通过fb登录才能继续进入应用程序。我的大部分应用程序已经完成,但这个登录问题是一个巨大的障碍。提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

我们在app中执行此操作的一种方法是在AppDelegate中加载MainViewController

此视图控制器始终存在于导航堆栈中,它是根视图控制器。

MainViewController中,我们会检查Facebook会话是否存在。

如果存在,我们会显示正常LandingPageViewController,否则,如果它不存在,我们会推送LoginViewController

如果您使用的是不能查看控制器的独立单身人士,要使用Facebook进行身份验证,您可以发布notification,您应该在MainViewController中观察。

收到此通知后,您可以执行推送视图控制器操作。

注意

伪代码下面是Objective C,但你可以跟随Swift。

App Delegate

#import "MainViewController.h"

-(void)didFinishLaunchingWithOptions....
{
    // pseudo-code

    MainViewController *mainVC = [[MainViewController alloc] init];

    [self.navigationController pushViewController:mainVC];
}

MainViewController.m

-(void)viewDidLoad
{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fbLoginSuccess) name:@"notifLogin" object:nil];

    // check if logged into FB Session
    if(FBSession exists...)
    {
        LandingPageViewController *landingVC = [[LandingPageViewController alloc] init];

        [self.navigationController pushViewController:landingVC];
    }
    else
    {
        LoginViewController *loginVC = [[LoginViewController alloc] init];

        [self.navigationController pushViewController:loginVC];
    }
}

// callback method for facebook success
-(void)fbLoginSuccess
{
    // push view controller here
    LandingPageViewController *landingVC = [[LandingPageViewController alloc] init];

    [self.navigationController pushViewController:landingVC];
}