Куда поместить пользователя, вошедшего в систему против логики пользователя, вышедшего из системы? - PullRequest
0 голосов
/ 15 марта 2019

Я знаю, что делаю это неправильно.

Когда мое приложение открывается, мне нужно указать, вошел ли пользователь в систему или вышел из нее (и в зависимости от этого, откройте другой контроллер представления).

Мое решение на этом изображении ниже.

enter image description here

Я знаю, что это неправильно (это просто пустой View Controller для одной функции), но я не знаю, где еще я мог бы поместить эту логику.

Кроме того, мне также необходимо знать, является ли пользователь платным или бесплатным (каждый получает свою домашнюю страницу). Как мне это проверить, не создавая полностью новый View Controller только для этой цели?

Редактировать

Один комментарий попросил меня вставить мой код, так что вот оно: ` импорт UIKit импорт Firebase

class CheckIfLoggedInViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    Auth.auth().addStateDidChangeListener { auth, user in
        if user != nil {
            // User is signed in. Show home screen
            self.performSegue(withIdentifier: "goToLoggedIn", sender: self)
        } else {
            // No User is signed in. Show user the login screen
            self.performSegue(withIdentifier: "goToLoggedOut", sender: self)
        }
    }

}

`

1 Ответ

1 голос
/ 15 марта 2019

Вы можете создать этот белый экран так же, как экран запуска. Это общее решение этой проблемы. Когда вы сделали все свои вещи (вызов API, валидация ... что угодно), затем перейдите к нужному экрану.

Если ваши задачи длинные, вы можете добавить сюда анимацию, как это делает Uber. Если вам не нужна анимация, убедитесь, что есть загрузчик активности, в противном случае пользователь считает, что устройство зависло из-за вашего приложения.

Как мне это проверить, не создавая совершенно новый View Controller именно для этой цели?

Когда приложение загружено в память, вызывается didFinishLaunchingWithOptions. Если вам нужно только перевести пользователя на экран входа или выхода с условием, вы можете добавить код здесь.

Но в этом делегате вызов API не рекомендуется.

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