Есть ли способ перейти на другую страницу в то время как весело c viewDidLoad () с помощью Swift? - PullRequest
0 голосов
/ 12 марта 2020

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

Это то, что я пока имею

    override func viewDidLoad() {
        super.viewDidLoad()

        let preferences = UserDefaults.standard

        if preferences.string(forKey: "useremail") != "" || preferences.string(forKey: "usernumber") != "" {
            transitionToMain()
        }
    }
    func transitionToMain() {

        let mainPage =
        storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.mainPage) as? MainPage

        view.window?.rootViewController = mainPage
        view.window?.makeKeyAndVisible()
    }

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

Большое спасибо заранее.

1 Ответ

0 голосов
/ 12 марта 2020

если вы хотите вызвать это в функции viewDidLoad, вы должны использовать ссылку на окно из appDelgate, поскольку windows равно nil, поскольку еще не добавлено в окно,

func transitionToMain() {

    let mainPage =
    storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.mainPage) as? MainPage
    let appDelgate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.window?.rootViewController = mainPage
    appDelegate.window?.makeKeyAndVisible()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...