Problèmes de rotation UITabBarController dans ios 6
Ack! J'ai eu mon tabbar rotation problèmes résolus enfin dans iOS 5, iOS 6 et xcode semblent avoir brisé des choses... voici ce que j'ai:
Application cible Résumé comprend: prise en charge de l'Interface Orientations - Portraint, Paysage Gauche, Paysage Droit
Tous les Afficher dans l'Application possède les méthodes suivantes:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
return ((interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown) &&
(interfaceOrientation != UIInterfaceOrientationLandscapeLeft) &&
(interfaceOrientation != UIInterfaceOrientationLandscapeRight));
} else {
return YES;
}
}
- (BOOL)shouldAutorotate
{
NSLog(@"am I called1?");
return NO;
}
-(NSUInteger)supportedInterfaceOrientations{
NSLog(@"am I called?");
return UIInterfaceOrientationMaskPortrait;
}
Dans les vues qui ne font pas partie de la barre d'onglet, la rotation est bloquée. Dans TOUS les points de vue de la tabbar (il y a 5) l'application n'appelle jamais ShouldAutorotate et donc tourne. Il semble supportedInterfaceOrientations est appelée une fois lors de la vue des charges, mais pas quand il semble si je switch entre les points de vue, car j'ai la NSLog, mais il semble ignorer la MaskPortrait réglage.
Je dois quitter le paysage activé dans la cible parce que j'ai un seul lecteur vidéo vue qui doit tourner (et il le fait, fine)
Est-ce un tabbar bug dans iOS 6? Dois-je désactiver la rotation de la vue différemment? Le shouldautorotatetointerfaceorientation a très bien fonctionné en ios 5
J'ai été à elle pendant un certain temps
Grâce,
Zack
source d'informationauteur Zachary Fisher | 2012-09-21
Vous devez vous connecter pour publier un commentaire.
Zack, je suis tombé sur cette même question. C'est parce que vous avez votre viewController incorporé à l'intérieur d'un TabBar Contrôleur ou UINavigationController et les appels à ces méthodes qui se passe à l'intérieur de ceux-ci au lieu de votre Vue normale (Changé en iOS6).
Je suis tombé sur cette question parce que j'ai été la présentation d'un viewController incorporé à l'intérieur d'un UINavigationController sur tous mes modal vues de Navigation à différents points de vue (Processus d'Inscription, de Connexion, etc).
Ma seule solution était de créer une CATÉGORIE pour les UINavigationController qui comprend ces deux méthodes. J'ai shouldAutorotate de retour PAS de toute façon parce que je ne veux pas que mon modal vues de la rotation. Votre correction peut être aussi simple que cela, lui donner un essai. Espérons que cela aide.
J'ai créé une catégorie et l'a nommé rotation automatique et sélectionné theUINavigationController option. Le M+H fichier sont ci-dessous.
... et de la catégorie .h:
Si vous avez une barre d'onglet comme je l'ai fait, la seule chose que vous devez faire est d'ajouter les éléments suivants à votre délégué .m fichier,
J'ai également eu le problème que j'ai besoin de quelques points de vue pour faire pivoter et d'autres pas avec plusieurs manettes de Navigation. Je l'ai fait en le disant à la NavigationController de regarder dans le point de vue du contrôleur. Voici ce que j'ai fait.
- Je créer un UINavigationController classe appelée RootNavigationController et désigné cette classe comme la Classe Personnalisée pour les manettes de Navigation dans la table de montage séquentiel. Dans le RootNavigationController.m j'ai ajouté les méthodes suivantes;
Dans chaque vue-contrôleur .m fichier j'ai également ajouté les méthodes suivantes.
Faisant cela me permet de définir l'orientation de chaque point de vue dans sa vue-contrôleur.
Travaillé pour moi en tout cas...
Ma situation est la suivante:
ViewController2 ensemble shouldAutorotate/MaskAll.
Donc mon œuvre: Créer UITabBarController catégorie et UINavigationCntroller catégorie comme
UITabBarController+rotation automatique.h
UITabBarController+rotation automatique.m
UINavigationController+rotation automatique.h
UINavigationController+rotation automatique.m
UIViewController1.m
UIViewController2.m
Il a travaillé comme un charme!
Dans mon cas, j'avais une manette de navigation intégré au sein d'un UITabBarController, et ce qui a fonctionné a été la création d'une catégorie comme Kunani défini, mais extendind UITabBarController au lieu de UINavigationController. Il a fonctionné comme un charme 🙂
Et .h fichier:
Cela fera en Swift
https://stackoverflow.com/a/30632505/2298002
il y a beaucoup d'ambigu ou imprévues résultats lors de la manipulation de cette situation, en particulier lorsqu'il s'agit de maintenir l'orientation pour seulement un point de vue spécifique de contrôleur et de ne pas effectuer le reste de l'application. cet algorithme semble à portée de main tous pour moi
https://stackoverflow.com/a/30632505/2298002
Vous devez ajouter cette chose dans le
UIViewController1.m
pour s'assurer que l'orientation précédente de statut est reconstruit:Parfait!