0

我的 rootViewController 工作并加载正常。但是,当我使用present(viewControllerToPresent: UIViewController, animated: true, completion: nil)另一个 viewController 调用它时,我只得到一个黑屏。

我查看了整个 stackOverflow,但只为故事板用户找到了解决方案。我正在以编程方式执行此操作

@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")            
    }
}
4

2 回答 2

1

没有错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")            
  }
}
于 2018-12-17T09:17:56.663 回答
0

你已经创建了一个新实例(RootViewController),它必须是黑色的..你不是指你的 RootViewController

于 2018-12-16T06:16:52.993 回答