Hey Stackoverflow Members, forse potresti aiutarmi a risolvere il problema.Impossibile ottenere il supporto dell'InterfaceOrientationsForWindow per lavorare con Swift 1.2
Il problema è che voglio bloccare l'orientamento di tutti gli UIViewControllers su "Ritratto", ma se appare il MoviePlayer dovrebbe passare alla modalità orizzontale e viceversa se il lettore video scompare.
Fino Swift 1.2 ho usato:
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow) -> UIInterfaceOrientationMask {
//If the video is being presented, let the user change orientation, otherwise don't.
if let presentedViewController = window.rootViewController?.presentedViewController? {
if (presentedViewController.isKindOfClass(MPMoviePlayerViewController) && !presentedViewController.isBeingDismissed()) {
return .AllButUpsideDown
}
}
return .Portrait
}
Con Swift 1.2 alcune cose sono cambiate e così ho finito con il seguente codice:
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> Int {
//If the video is being presented, let the user change orientation, otherwise don't.
if let presentedViewController = window?.rootViewController?.presentedViewController {
if (presentedViewController.isKindOfClass(MPMoviePlayerViewController) && !presentedViewController.isBeingDismissed()) {
return Int(UIInterfaceOrientationMask.AllButUpsideDown.rawValue)
}
}
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}
Ma il mio codice non funziona, il film Player (XCDYoutube) è bloccato in modalità verticale. Orientamento del dispositivo Le impostazioni dovrebbero andare bene!
Grazie in anticipo per il vostro aiuto!
ho due suggerimenti rapidi: 1. Assicurarsi che il file Info.plist per il progetto non contenga una chiave per l'orientamento dell'interfaccia supportata che escluda le modalità orizzontale. 2. Impostare un punto di interruzione nella prima riga di istruzione "if" nella funzione supportataInterfaceOrientationsForWindow e quindi fare un solo passaggio attraverso il codice per vedere cosa sta succedendo. – dean
in seguito ai commenti di deanware: sei sicuro di aver raggiunto il punto di interruzione? Stai restituendo un int/not UIInterfaceOrientationMask. Hai provato l'aggiornamento a swift 1.2 opzione di menu? – johndpope
Ho appena provato in un nuovo progetto il tuo codice Swift 1.2 e funziona perfettamente. L'app ruota solo quando viene presentato MoviePlayer. Probabilmente hai un altro problema. Forse XCDYoutube non sta giocando bene con iOS 8 e non sta girando più? Prova a tornare a Tutti gli orientamenti per vedere se il giradischi ruota. – pteofil