Rotation automatique d'une seule UIViewController dans iOS 6 avec UITabBar
J'ai une application qui fonctionne uniquement dans Portrait Mode
, mais il y a un singleView qui peut afficher de la vidéo, donc je veux que la vue de travailler aussi dans le landscape mode
, mais dans iOS 6, je ne peux pas comprendre comment je peux le faire, maintenant j'ai ceci:
Dans AppDelegate.m j'ai:
self.window.rootViewController = myTabBar;
puis dans le Résumé du projet:
et je l'ai trouvé dans iOS 6 pour détecter la rotation de la vue que j'ai pour ce faire:
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
//Tell the system It should autorotate
- (BOOL) shouldAutorotate {
return YES;
}
donc je insérer le code ci-dessus que dans mon UIViewController
que je veux l'utiliser aussi dans le paysage, mais ne fonctionne pas, quelqu'un sait comment je peux faire? je veux juste la rotation automatique lors de l'affichage de la vidéo.
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, votre les paramètres de la cible devrait ressembler à ceci:
Dans UITabBarController:
À l'intérieur de votre ViewController:
a) si vous ne voulez pas tourner:
b) si vous souhaitez faire pivoter en mode paysage:
Edit:
Autre solution est de mettre en œuvre cette méthode à l'intérieur de AppDelegate:
Je voudrais écrire un commentaire mais je ne peux pas, donc je poste cela comme une réponse.
C'était mon scénario :
Mon application prend en charge l'orientation en changeant uniquement sur certains points de vue et je ne pouvais pas comprendre comment le faire, juste pour ceux que je voulais, alors j'ai atterri à cette question et vu mientus' réponse(Merci pour ça) alors je suis allé de l'avant et fait ce qu'il a suggéré ce qui a été sous-classe UITabBarController et remplacer ces méthodes :
puis à l'intérieur de chaque vue-contrôleur, j'aurais les méthodes pour indiquer si je voulais la rotation ou non. Les méthodes de UITabBarController ont appelé, mais pas ceux de mes viewcontroller, par conséquent, la rotation était encore en cours où je ne voulais pas. Ensuite, j'ai sous-classe UINavigationController et de remplacer les mêmes méthodes qu'avec ce changement sur le supportedInterfaceOrientation l'un à ressembler à ceci :
}
ce que cela fait, fondamentalement, il obtient la vue-contrôleur, puis demande la pris en charge de l'orientation et voila mes méthodes dans mon viewcontroller appelée et je peux manipuler l'orientation où je veux.
Est la vue que vous souhaitez faire pivoter une sous-vue de portrait-seul point de vue? Généralement rotation de la vue comportement hérite de rootviewcontroller. Alors si vous retournez PAS dans shouldAutorotate dans rootviewcontroller vous arrêter la rotation dans chaque underview.
Je suggère de diviser votre architecture de cette façon:
rootViewController -> supportedInterfaceOrientations = Portrait & shouldAutorotate = OUI
NORotationViewControllers -> supportedInterfaceOrientations = Portrait & shouldAutorotate = OUI
rotationViewControllers -> supportedInterfaceOrientations = All & shouldAutorotate = OUI
Si vous n'avez pas lu encore, jetez un oeil à:
Prise En Charge De Plusieurs Orientations De L'Interface