J'ai une application de vue fractionnée assez simple adaptée à partir du code de l'iPhone. La fonctionnalité principale est dans les classes partagées avec des classes spécifiques iPhone et iPad héritant et augmentant le code. Toutes les classes utilisées dans l'application iPad ont les suivantes:iPad UISplitViewController pivote inutilement lorsque la boîte de dialogue modale est fermée
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Overriden to allow any orientation. return YES; }
Le contrôleur de la vue principale consiste en une UIToolbar et un UITableView. Le répond aux rotations correctement à chaque étape bar deux. Si je présente une boîte de dialogue modale de ce point de vue:
navigationController = [[UINavigationController alloc] initWithRootViewController:tvc]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; [self presentModalViewController:navigationController animated:NO];
Tout fonctionne comme prévu, y compris la rotation du dispositif jusqu'à ce que je rejette la boîte de dialogue de quelque manière que:
[self dismissModalViewControllerAnimated:YES];
à quel point mon point de vue principal tourne 90 degrés. J'ai examiné les paramètres dans les fichiers nib et tout semble bien se passer. Aucun conseil? Un dialogue modal présenté par UITableView sur le côté gauche ne présente pas ce problème.
Question bonus:
J'ai découvert la boîte de dialogue modale présenté par la vue de gauche a un pépin. Mais seulement un. S'il est présenté par la vue popover en mode portrait et que l'appareil est pivoté, vous obtenez un pépin graphique assez impressionnant car il pivote hors de la vue pour toujours!
Une coque d'une application de vue éclatée que j'ai rapidement frappé n'affiche pas le problème, donc je vais comparer et contraster et afficher la solution quand je la trouverai. – Diziet
Définir des points d'arrêt et parcourir les émissions que shouldAutorotatetoInterfaceOrientation est appelée sur chaque vue affichée lorsque le contrôleur de vue modale est présenté. Cela semble terriblement étrange quand la vue n'a pas été tournée. – Diziet
Remarque - Le comportement mentionné comme «étrange» ci-dessus semble être normal. Ce que je pense encore est sanglant étrange; pourquoi ces appels sont-ils effectués lorsque l'appareil n'est pas tourné? La disposition de mon application est que la fenêtre d'affichage principale se compose d'un xib contenant un UIView (avec UIToolbar & UITableView) et un UITableViewController. Tout cela est normalement lié via IB. J'ai lu ailleurs qu'avoir des contrôleurs de vue à l'intérieur des contrôleurs de vue est une idée vraiment stupide, donc je vais fusionner le code en un. Il y a une raison historique c'est séparé mais c'est essentiellement: la simplicité + la paresse. – Diziet