2010-07-15 8 views
0

I ont une application avec l'une sructure comme suitIphone Orientation Émet

  • UITabBarController (3 onglets)
    • UINavigationController (dans chacune des pattes)
      • UIViewController (dans chacun des contrôleurs de navigation)

Dans Je veux quelques-uns des UIviewControllers pour pouvoir passer à la fois le paysage et les modes potrait

par exemple dans l'onglet 2 J'ai une section Galerie Photos (Voir 1) J'y ai 9 boutons pour 9 galeries d'image Lorsque le bouton 1 est touché le contrôleur de navigation pour afficher 2 navigue où les utilisateurs peuvent parcourir des photos différentes. Lorsque l'utilisateur touche une photo Le contrôleur de navigation navigue jusqu'à la vue 3 pour un mode plein écran.

Maintenant, je veux 3 Voir d'être à la fois du paysage orientable et en mode portrait. où toutes les vues précédentes ne doivent être vues qu'en mode portrait. Comment vais-je faire cela?

Je l'ai déjà tripoté autour de la méthode

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

dans toutes les vues, mais je ne peux pas sembler pour obtenir ce droit.

Répondre

0

J'ai eu du mal avec cette situation.

2 façons de résoudre ce:

1er
Utilisation [[UIDevice currentDevice] setOrientation:whatever]; Il déclenchera un avertissement.

2nd
Utilisez presentModalViewController:animated: Et implémentez shouldAutorotateToInterfaceOrientation: dans ce contrôleur Modal View. Si vous voulez conserver l'animation de transition originale, vous devrez coder un peu.

+0

pourriez-vous élaborer un peu plus? – Rupert

0

Le contrôleur de vue racine (UITabBarController) doit dans ce cas implémenter shouldAutorotateToOrientation:, de même que chaque contrôleur enfant. donc définir la méthode de commande de la barre d'onglet YES, puis pour ceux que vous ne voulez pas autre chose que le portrait vient de mettre à revenir oui seulement pour ce point de vue, etc

+0

qui ne semble pas fonctionner correctement. l'orientation se produit dans toutes les vues – Rupert