rootViewController не загружается после вызова, используя -> present (viewControllerToPresent: UIViewController, animated: true, завершение: nil) - PullRequest
0 голосов
/ 16 декабря 2018

Мой rootViewController работает и загружается нормально.Однако, когда я вызываю его с помощью present(viewControllerToPresent: UIViewController, animated: true, completion: nil) из другого viewController, я получаю только черный экран.

Я просмотрел весь стекOverflow, но нашел решения только для пользователей раскадровок.Я делаю это программно

@objc func handleLogin() {
    print("LOGIN BUTTON TOUCHED")
    guard let email = emailTextField.text, let password = passwordTextField.text else {
        print("Form is not valid.")
        return
    }
    Auth.auth().signIn(withEmail: email, password: password) { (user, error) in
        if error != nil {
            print(error!)
            return
        }
        let viewController = RootViewController()
   ***  self.present(viewController, animated: true, completion: nil)
        print("Logged in")            
    }
}

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Нет ничего плохого в self.present(viewController, animated: true, completion: nil)

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

Другой подход, который вы можете рассмотреть, заключается в замене действительного rootViewController из текущего uiWindow следующим образом

@objc func handleLogin() {
  print("LOGIN BUTTON TOUCHED")
  guard let email = emailTextField.text, let password = passwordTextField.text else {
    print("Form is not valid.")
    return
  }

  Auth.auth().signIn(withEmail: email, password: password) { [weak self] (user, error) in
    guard let strongSelf = self else { return }
    guard error == nil else { return }
    guard let user = user else { return }

    UIApplication.shared.keyWindow?.rootViewController = RootViewController()
    print("Logged in")            
  }
}
0 голосов
/ 16 декабря 2018

вы создали новый экземпляр (RootViewController), и он должен быть черного цвета .. вы не ссылаетесь на свой RootViewController

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