Je n'arrive pas à comprendre pourquoi ce qui suit se produit (et comment le réparer).Problème après avoir ignoré une vue modale utilisée en conjonction avec un contrôleur uisplitview
J'ai créé une application en utilisant l'application basée sur la vue partagée.
J'ai ajouté un UIBarButtonItem appelé showTheModal qui appelle cette méthode trouvée dans RootViewController.m:
- (IBAction)showTheModal:(id)sender {
theModalController.modalPresentationStyle = UIModalPresentationFullScreen;
theModalController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:theModalController animated:YES];
if ([detailViewController popoverController] != nil)
[[detailViewController popoverController] dismissPopoverAnimated:YES];
Le BarButtonItem bien sûr, est indiquée au bas du contrôleur racine par défaut (côté gauche du de la vue partagée dans le paysage) ou en bas de la fenêtre contextuelle (si en paysage).
La vue modale est ignorée par un bouton placé dans une barre d'outils. Il appelle ce qui suit:
[self dismissModalViewControllerAnimated: YES];
Le problème que j'ai est de faire pivoter l'écran, tandis que le modal est en hausse. Voici ce qui se passe dans différents scénarios (start fait référence à l'orientation lorsque le bouton showTheModal est touché, end fait référence à l'orientation lorsque j'appuie sur le bouton dismissModal).
1) Démarrer paysage, mettre fin paysage: Tout semble bien. Les méthodes willHideViewController et willShowViewController ne sont pas appelées dans le RootViewController (comme prévu)
2) Démarrer le paysage, mettre fin au portrait: l'interface utilisateur semble bien. willHideViewController est exécuté DEUX FOIS (POURQUOI?)
3) Démarrer le portrait, mettre fin au portrait: L'interface utilisateur semble bien. willHideViewController est exécuté une fois (comme prévu)
4) Démarrer le portrait, mettre fin au paysage: Le bouton 'Liste des racines' reste dans la vue détaillée (à droite de la vue partagée.) willHideViewController et willShowViewController sont invoqués (POURQUOI ??)
Toute pensée pour expliquer pourquoi # 2 et # 4 ne se comportent pas tout à fait de la manière attendue?