この質問は以前に尋ねられましたが、他の質問の回答は私のために働いていませんでした。ここに私のコードは次のとおりです。ビューはウィンドウの階層にありません
`` `
var values = [String: AnyObject]()
func loginUserToFirebase(_ completion:() -> Void) {
let accessToken = FBSDKAccessToken.current()
guard let accessTokenString = accessToken?.tokenString else {fatalError()}
let credentials = FIRFacebookAuthProvider.credential(withAccessToken: accessTokenString)
FIRAuth.auth()?.signIn(with: credentials, completion: { (user, error) in
if error != nil {
print(error ?? "Something went wrong")
return
}
self.fbGraphRequest()
})
}
internal func fbGraphRequest(){
FBSDKGraphRequest(graphPath: "/me", parameters: ["fields": "id, name, email"]).start { (connection, result, error) in
if error != nil {
print(error ?? "error unknown")
return
} else {
print(result ?? "no result")
self.values = result as! [String: AnyObject]
print(self.values)
weak var rootViewModel = RootViewModel()
rootViewModel?.values = self.values
self.presentRootViewController()
}
}
}
internal func presentRootViewController() {
let loginController = LoginController()
let rootViewController = RootViewController()
loginController.present(rootViewController, animated: true,
completion: nil)
}
` ``
、ここでは私のエラーです:私は私のLoginViewControllerでこれを持っていたと私はself.present(rootViewController, animation: true, completion: nil)
を使用する場合 Attempt to present <Art_Cache.RootViewController: 0x7fa6a1c2aab0> on <Art_Cache.LoginController: 0x7fa6a1c840b0> whose view is not in the window hierarchy!
このスニペットは、働いていました。私のプロジェクトをMVVMに変換しようとしています。これが起こっています。問題はself.presentRootViewController()
の周辺にあるようです。これらの機能は、Facebookのログインボタンを押すと起動します。助けて喝采してください!
を変更することができたまたまあなたの先生をお願いします。あなたはロックスターです!私はこのコードのバリエーションを試しましたが、うまくいきませんでしたので、 'UIApplication.shared.keyWindow.rootViewcontroller'が問題だったと思っていませんでした。再びありがとう! –
あなたはナビゲーションとタブの選択も含めました。あなたは本当にロックスターです! –
問題なし、Welcome @ReyCerio。 – SuryaKantSharma