Poignée de changement d'orientation de l'iPad avec un UIViewController et deux XIB
j'aimerais poignée de changement d'orientation sur une application iPad avec un UIViewController et deux XIBs, disons MenuView et MenuViewLandscape.
Donc, dans le willRotateToInterfaceOrientation méthode de la MenuViewController, comment puis-je changer XIB sans l'aide d'un autre contrôleur pour le mode paysage ?
Je suis en utilisant le code suivant:
if( toInterfaceOrientation != UIInterfaceOrientationPortrait ){
MenuViewController *landscape = [[MenuViewController alloc]
initWithNibName: @"MenuViewLandscape"
bundle:nil
];
[self setView:landscape.view];
}
else {
MenuViewController *potrait = [[MenuViewController alloc]
initWithNibName: @"MenuView"
bundle:nil
];
[self setView:potrait.view];
}
Mais quand je vais à la vue paysage de la XIB le paysage afficher les contrôles ne sont pas dans le bon sens.
Un peu de chance avec ça?
voir la réponse ci-dessous
voir la réponse ci-dessous
OriginalL'auteur Simone Margaritelli | 2010-11-19
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr qu'il y a tout d'étranges effets secondaires avec cette mise en œuvre, mais essayez quelque chose comme ça et de voir si cela fonctionne pour vous:
Cela suppose que le Propriétaire du Fichier dans votre MenuView et MenuViewLandscape XIBs sont toutes les deux à MenuViewController et que la prise de vue est réglé dans les deux XIBs. L'ensemble de vos points de vente doit être rebranché correctement sur la rotation lors de l'utilisation de
loadNibNamed
.Si vous êtes à la construction pour iOS 4, vous pouvez aussi remplacer le
loadNibNamed
lignes avec ces:et
Ces supposons que le UIView que vous souhaitez afficher suit immédiatement le Propriétaire du Fichier et des Premiers répondants des objets proxy dans le XIBs.
Ensuite vous avez juste besoin de s'assurer que les points de vue sont correctement orientée pour l'interface de l'orientation. Pour tous les points de vue qui ne sont pas par défaut dans le portrait, les faire tourner en paramètre de la
transform
propriété de la vue et de l'aideCGAffineTransformMakeRotation()
avec les valeurs appropriées comme indiqué dans l'exemple ci-dessus.La rotation seule peut résoudre votre problème sans le chargement des Plumes. Cependant, le chargement d'une toute nouvelle instance d'un
MenuViewController
et le réglage de son point de vue à l'existantMenuViewController
s'peut provoquer un comportement étrange avec le cycle de vie et la rotation des événements, de sorte que vous pourriez être plus sûr d'essayer les exemples ci-dessus. Ils ont également vous épargner la peine d'avoir à créer de nouvellesMenuViewController
cas où vous avez seulement besoin de l'afficher.Espérons que cette aide!
Justin
OriginalL'auteur justinkmunger
Peut-être la réponse de Jon Rodriguez ici à faire ce que vous voulez:
Souhaitez utiliser muliple des plumes pour différentes interface de l'iphone orientations
Si vous avez deux UIViewController classes, une classe de base pour le mode portrait et une sous-classe de la que pour le mode paysage, vous pouvez mettre à peu près tout le code dans la classe de base. Ce qui vous donne la plupart des avantages d'une vue unique de contrôleur de classe tout en vous permettant d'utiliser d'autres solutions de ce type:
Manière la plus facile de prendre en charge plusieurs orientations? Comment puis-je charger un personnalisé PLUME lorsque l'application est en mode Paysage?
OriginalL'auteur David Gelbart