Как убрать задержку при смене ViewController в swift - PullRequest
1 голос
/ 10 июня 2019

Я испытываю некоторую задержку, когда мое приложение перемещается между ViewControllers.Интересно, как я могу это решить?Проблема возникает, когда я проверяю пользователя, вошедшего в firebase.Я отправляю код ниже:

override func viewDidLoad() {
    super.viewDidLoad()

    // Check if user is signed in!!

    if Auth.auth().currentUser != nil {

        // Move to MapController
        print("USER: SIGNED IN")
        self.moveToMain()

    } else {

        //User Not logged in
        print("USER: NOT SIGNED IN")
    }
}

Итак, конечно, я вижу, что возникает проблема, когда этот код запускается ПОСЛЕ view.didLoad().И это является частью проблемы, я хочу сделать это ДО view.didLoad() или как-то переопределить эту функцию, ЕСЛИ пользователь вошел в систему.

В настоящий момент очень плохой пользовательский интерфейс, так как пользователь попадает на страницу входа ичерез .5 сек. переходит в основную.Любые предложения, люди?

PS Я новичок, был бы признателен, если бы вы также могли объяснить, как я могу избежать этой задержки, независимо от того, запущен ли переход внутри view.didLoad или в любой функции / кнопке Action.

1 Ответ

0 голосов
/ 10 июня 2019

Один из способов сделать это - создать класс, назовем его RootViewController. В этом контроллере вы будете загружать все настройки с сервера, а также здесь вы будете проверять токен или аутентификацию пользователя (то есть, если пользователь вошел в систему или нет).

И тогда RootViewController определит, какой контроллер (Домашняя страница? Экран аутентификации?) Будет представлен ИЛИ заменит UIWindow в делегате приложения. Что бы вы ни хотели сделать, переместившись на другой экран, вы получите здесь все необходимое.

Вы можете сделать дизайн экрана RootViewController равным LaunchScreen, чтобы пользователь чувствовал, что он все еще на экране запуска, а не на каком-то странном случайном экране.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...