Erreur "whose view is not in the window hierarchy!"
Bonjour tous le monde,
Après avoir terminer mon application, et fait des test a Simulateur Iphone.
Je l'ai installer sur mon mobile, IPhone 5C et d'autres.
J'ai une erreur qui arrive quant je passe d'une fenêtre a une autre.
je m'explique il vérifie si on est loguer :
1- si on est il continue,
2- si non il demande de se logue.
Mais dans le terminal j'ai cela :
Warning: Attempt to present <test.LoginViewController: 0x10168d4c0> on <test.DetailForSaleTableViewController: 0x10213a200> whose view is not in the window hierarchy!
j'ai vue cela :
UIViewController *vc = self.view.window.rootViewController;
[vc presentViewController: activityController animated: YES completion:nil];
[self presentViewController: activityController animated: YES completion:nil];
et ne trouve pas comment résoudre cela.
Merci de vos aide,
Réponses
Tu fais ces 3 lignes à la suite ?
C'est un objet de quelle classe le self?
L'erreur est explicite :
Tu demandes à un ViewController (A) de présenter un autre ViewController (B ). Sauf que ce dernier (A) n'est pas présent (visible on va dire), et du coup, il ne peut pas afficher un autre ViewController (B ).
Tu fais ces 3 lignes à la suite ?
Non c'est un exemple que j'ai pris.
C'est un objet de quelle classe le self?
????
L'erreur est explicite :
Tu demandes à un ViewController (A) de présenter un autre ViewController (B ). Sauf que ce dernier (A) n'est pas présent (visible on va dire), et du coup, il ne peut pas afficher un autre ViewController (B ).
Oui c'est ça, mais je ne comprend pas ??
-[presentViewController:animated:completion:]
OK mais comment je peux faire pour régler cela, le simulateur ne ma jamais donne cette erreur, pourquoi j'ai cela maintenant.
voila un bout de mon code :
Merci a vous,
Tu as mis le code dans quelle méthode de quelle classe ?
Bonjour,
Voilà mon code :
Cela me permet si pas loguer redirection vers le storyboard de connexion.
Voilà ,
P.S : merci encore.
ça y est !
Tu écris le code avant que la vue est visible. Tu devrais le mettre dans viewDidAppear.
Trop génial merci a toi j'ai fait les modif est ça fonctionne très bien plus d'erreur.
Code modifier :
Désolé,
J'ai bien fait des modifications, après un test en m'authentifient ça fonctionne bien.
Mais quant je suis pas authentification cela dois passer sur le storyboard de demande de connexion et ça ne le fait plus.
Merci a vous,
Tu dois pas mettre override func viewWillAppear() plutôt ? Comme t'as fait pour viewDidLoad() ?
Tu n'appelles pas super.viewWillAppear() dedans ?
Et je pense que pour ton test de connection, dans lequel tu peux faire un self.present(), tu auras le même soucis s'il est dans le viewDidLoad()
J'ai corriger cela est j'ai mis :
Et ça marche maintenant ? Je suppose vu que tu mets la vraie méthode qui sera appelée (la tienne n'était pas correcte).
Et les deux autres indications de mon précédent commentaire ?
Documentation de viewDidAppear:
J'utilise cela dans d'autres storyboard :
Wouaaaah ! Quelle indentation. tu devrais utiliser plutôt "guard let ... else"
Tu sembles utiliser Swift 3, alors favorises URL plutôt que NSURL, URLRequest plutôt que NSURLRequest, Swift Dictionaries plutôt que NSDictionary, etc.