我完全被难住了,当有人使用 facebook 成功登录时,我如何让我的应用程序从我的登录 View Controller 推送到我的主视图 Controller (使用 swift)。我知道这是一个糟糕的灵感,但我想让登录体验像 Tinder 一样,您必须通过 fb 登录才能继续进入应用程序。我的大部分应用程序已经完成,但这个登录问题一直是一个巨大的障碍。在此先感谢您的帮助。
最佳答案
我们在我们的应用程序中执行此操作的一种方法是在我们的 AppDelegate 中加载 MainViewController
。
此 View Controller 始终存在于导航堆栈中,它是 Root View Controller 。
在 MainViewController
中,我们检查 Facebook session 是否存在。
如果存在,则推送普通的LandingPageViewController
,否则,如果不存在,则推送LoginViewController
。
如果您使用的是不是 View Controller 的独立单例,要通过 Facebook 进行身份验证,您可以发布一个通知
,您应该在 MainViewController 中观察到这一点。
收到此通知后,您可以执行推送 View Controller 操作。
注意事项
下面的伪代码是在 Objective C 中,但您可以按照 Swift 进行操作。
应用委托(delegate)
#import "MainViewController.h"
-(void)didFinishLaunchingWithOptions....
{
// pseudo-code
MainViewController *mainVC = [[MainViewController alloc] init];
[self.navigationController pushViewController:mainVC];
}
主视图 Controller .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];
}
关于ios - 通过 Facebook 登录确认传递 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28640969/