FBSDKAccessToken currentAccessToken nil después de salir de la aplicación

Estoy desarrollando una aplicación ios usando el SDK de Facebook para iniciar sesión. He establecido unLogInViewController como el controlador de vista inicial en el Storyboard, desde donde el usuario inicia sesión con la cuenta de FB.

Tengo otro ViewController que se carga correctamente una vez que el usuario inicia sesión.

En el archivo AppDelegate estoy buscandocurrentAccessToken y si no es nulo, estoy cargando directamente el segundo ViewController, porque el usuario ya ha iniciado sesión.

sin embargo, elcurrentAccessToken siempre es nulo si salgo de la aplicación y la reinicio. Solo funciona si presiono el botón de inicio y vuelvo a abrir la aplicación mientras aún se está ejecutando en segundo plano.

Aquí están los detalles en el código:

AppDelegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    self.customNavigationBar()
    if (!isIcloudAvailable()) {
        self.displayAlertWithTitle("iCloud", message: "iCloud is not available." +
           " Please sign into your iCloud account and restart this app")
        return true
    }

    if (FBSDKAccessToken.currentAccessToken() != nil) {
        self.instantiateViewController("MapViewController", storyboardIdentifier: "Main")
    }

    return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
}

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
    return FBSDKApplicationDelegate.sharedInstance().application(
            application,
            openURL: url,
            sourceApplication: sourceApplication,
            annotation: annotation)
}

func applicationWillResignActive(application: UIApplication) {
        FBSDKAppEvents.activateApp()
}

func applicationDidBecomeActive(application: UIApplication) {
        FBSDKAppEvents.activateApp()
}

LogInViewController.swift

override func viewDidLoad() {
    super.viewDidLoad()    
    // Listen to the Facebook notification and when received, execute func handleFBSessionStateChangeWithNotification
NSNotificationCenter.defaultCenter().addObserver(self, selector:"handleFBSessionStateChangeWithNotification:", name: "SessionStateChangeNotification", object: nil)
}

func handleFBSessionStateChangeWithNotification(notification: NSNotification) {
    // Switch to MapViewController when logged in
    if ((FBSDKAccessToken.currentAccessToken()) != nil) {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let mapViewController = storyboard.instantiateViewControllerWithIdentifier("MapViewController") as! MapViewController
        self.presentViewController(mapViewController, animated: false, completion: nil)
    }
}

No sé si está relacionado, pero también recibo una advertencia paraMapViewController porque no hay segue puesto desde el Storyboard:

Advertencia: ¡Intente presentar MapViewController cuya vista no está en la jerarquía de ventanas!

Respuestas a la pregunta(1)

Su respuesta a la pregunta