Автоматический вход в UserDefaults не работает - PullRequest
0 голосов
/ 03 июля 2018

Поэтому, когда пользователь впервые откроет мое приложение, он увидит вид с кнопкой для входа в систему или регистрации. В моем представлении входа в систему у меня есть обработчик кнопки (прикрепленный через действие), который вызывается, когда пользователь нажимает кнопку входа. Несмотря на то, что я использую UserDefaults для сохранения состояния входа в систему, мое приложение не переходит прямо к моему представлению Dashboard автоматически. Есть идеи почему?

// Firebase auth in doLogin action (Login VC)

Auth.auth().signIn(withEmail: un, password: pw)
{
    (resp, err) in if (err == nil && resp != nil)
    {
        if (resp!.user.isEmailVerified)
        {

            // segue from Login VC to Dashboard VC will be exectuted

            self.performSegue(withIdentifier: "loggedin", sender: nil)


            // store the logged in state as true for the future

            UserDefaults.standard.set(true, forKey: "loggedin")

            UserDefaults.standard.synchronize()

        }
    }
}

Вот код для контроллера основного вида, чтобы определить, следует ли ему переходить непосредственно к приборной панели.

func loggedIn() -> Bool {

    // determine if the user is still logged into the app

    return UserDefaults.standard.bool(forKey: "loggedin")

}


override func viewDidLoad() {

    super.viewDidLoad()


    if (loggedIn())
    {

        // logged in, return to the dashboard view controller

        performSegue(withIdentifier: "persisted", sender: nil)

    }

}

Я пытался использовать операторы печати, либо либо функция loggedIn по какой-либо причине не выполняется, либо консоль просто переполнена операторами журнала отладки Firebase, чтобы их даже увидеть.

1 Ответ

0 голосов
/ 03 июля 2018

Вы должны встроить свой контроллер основного вида в UINavigationController, чтобы заставить persisted работать.

...