从facebook注销时显示登录控制器

问题描述 投票:0回答:1

我正在开发一个需要登录Facebook的iOS应用程序。所以我有一个登录视图控制器,它是我的第一个窗口和一组只能为登录用户访问的控制器。

在我的LoginViewController中,我实现了facebook委托:

// LoginViewController.swift extract

// Facebook Delegate Methods
func loginViewShowingLoggedInUser(loginView : FBLoginView!) {
    println("User Logged In")
    //Push main controller of the app
}

...

func loginViewShowingLoggedOutUser(loginView : FBLoginView!) {
    println("User Logged Out")
    //PROBABLY MISSING CODE HERE to display LoginViewController (self)
}

func loginView(loginView : FBLoginView!, handleError:NSError) {
    println("Error: \(handleError.localizedDescription)")
}

我想做的是:每当facebook委托调用注销方法时显示LoginViewController,无论当前显示哪个控制器。我不能简单地推送视图,因为每次显示视图时都会调用logout方法,所以我最终会进入无限循环。你能解释一下,最干净的方法是什么?我应该在LoginViewController中使用委托方法吗?

红利问题:facebook委托在登录视图控制器上,即使显示另一个控制器,仍会调用注销方法。由于loginViewShowingLoggedOutUser是一个实例方法,我确定我的控制器的实例永远不会被销毁,即使LoginViewController不可见,我的委托方法总是被调用?

ios swift facebook
1个回答
0
投票

您可以将第一个NavigationController作为rootController。在启动时,如果用户没有登录,你会建立一个模态LoginViewController。如果用户在应用程序运行时注销,你只需设置另一个模态LoginViewController。

© www.soinside.com 2019 - 2024. All rights reserved.