Mon iPhone App est une application d'orientation portrait et dans mon application, j'ai un Donc, de sorte que j'ai 2 méthodes appelées lorsque la notification est passée p> Que serait Je mets dans ces 2 méthodes pour permettre une modification d'orientation uniquement pendant la lecture vidéo? P> p> utableview code> qui a un
uiwebview code> dans le premier
uitablecell code>. Le
uiWebView code> montre une vidéo YouTube intégrée. Lorsque je clique sur la vidéo pour jouer, il entre en mode plein écran. Ce que je dois faire est, permet à l'utilisateur de faire pivoter son appareil et de lire la vidéo en mode paysage. Ensuite, lorsque la vidéo est arrêtée, autorisez uniquement la portrait. Je me donne pour écouter la notification lorsque la vidéo entre dans le plein écran et laisse plein écran. Mais je ne sais pas comment permettre à l'utilisateur de faire pivoter l'utilisateur de faire pivoter l'orientation de l'interface.
3 Réponses :
Vous auriez une variable d'état global, probablement dans votre déléguée de votre application ou où vous stockez vos variables qui devraient être accessibles à l'échelle mondiale, puis définissez-la sur true code> ou
false code> Selon Wether, le joueur de film est en plein écran ou non. Dans les rappels qui sont appelés à faire pivoter l'application, vous vérifiez l'état de la variable et en fonction de ce retour si la rotation est autorisée ou non. P>
J'aurais probablement dû mentionner que j'ai également eu un ensemble de Bool pour cette raison exacte, mais j'ai échoué à essayer de changer si la rotation est autorisée ou non dans les rappels pour faire pivoter l'application. Seriez-vous capable de me montrer du code qui permettrait cela?
Je l'ai compris. Dans mes 2 méthodes:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ NSUInteger orientations = UIInterfaceOrientationMaskPortrait; if (self.fullScreenVideoIsPlaying == YES) { return UIInterfaceOrientationMaskAllButUpsideDown; } else { if(self.window.rootViewController){ UIViewController *presentedViewController = [[(UINavigationController *)self.window.rootViewController viewControllers] lastObject]; orientations = [presentedViewController supportedInterfaceOrientations]; } return orientations; } }
Merci!! J'ai passé plusieurs heures à rechercher une réponse à ce problème et votre solution était de loin la plus simple. Très appréciée :)
Je cherche des heures sur la façon de résoudre mon problème de rotation. Cela fixe-le; Cependant, je ne peux pas sembler l'obtenir pour désactiver la rotation après la fin de la vidéo. Où avez-vous mis l'appel de notification pour YouTubefiné?
Nevermind, je l'ai réparé. Je réalise que toute mon application faisait tourner. Pour résoudre ce problème, je viens de supprimer l'instruction IF (Self.Window.rootViewController) dans la méthode prise en chargeInterfaceOrientsforWindowWindow. Maintenant tout fonctionne parfaitement. Merci d'avoir posté ça!
Bonjour @Browneface Après avoir retiré aussi, je suis incapable d'arrêter les orientations de ma candidature. Et aussi après avoir terminé l'application Vedio toujours en mode paysage uniquement. Cela ne changera pas avec force. S'il vous plaît aidez-moi ce que je fais mal
Comment puis-je tirer les 2 méthodes? Ajoutez une cible au webview lorsque sa touche est touchée?
Le 'NSnotificationCenter' appelle les deux méthodes. Vous pouvez voir où je l'ai défini dans la question initiale. [[NOTIFICATIONCENTER DEFAULTERCENTER] Addobserver: Sélecteur auto-sélecteur: @Selector (YouTubefiné :) Nom: @ "UimoviePlayControllerDidéyxitfulcreennification" Objet: nil]; Et ceci [[NOTIFICATIONCENTER DÉLÉLACETERCENTER] Addobserver: Sélecteur auto-sélecteur: @Selector (YouTubestarted :) Nom: @ "UimoviePlayControllerdIdentificationLsCreennotification" Objet: nil];
Crash! Initialement, lorsque vous lisez la ligne: UIViewController * présentéviewcontroller = [[(UINAVIGATIONCONTROLLER *) Self.Window.rootViewController ViewControls] LastObject] ;. Je pense que je suis défini MfsiidemenucontAnterviewController comme ContexView de RootView pour fenêtre.
Si vous souhaitez seulement prendre en charge la lecture du paysage en plein écran. De iOS 8 à partir de l'iOS, vidéo de Dans votre vérification de votre AppDelegate Si la fenêtre de présentation contient uiwebview code> joue à l'intérieur
AvplayerviewController code>.
AvplayerviewController code>. p>
Soyez prudent, car iOS6 la notification du "bouton vidéo" semble être:
UimoviePlayControllerWillexitfullfreennotification Code> (voir: Stackoverflow .COM / A / 8554040/1436861 et Stackoverflow.com/a/12681507/1436861 )
Dupliqué possible de UimoviePlayerControllerdIdentificationCreannotification non fonctionner dans iOS8