2016-04-13 39 views
4

bundan içindeki tüm diğer denetleyicileri yöneten bir kök görünümü denetleyicisi var dönen, bu yüzden shouldAutorotate ve supportedInterfaceOrientations overrode değil Sadece AVPlayerViewController kullanarak tam ekran video izlerken hariç.gizler böyle rootViewController söyledi uygulamanın yönelime bağlı kalarak ve

Yukarıdaki kod, tüm uygulama genelinde harika çalışıyor. Tüm denetleyicilerim ve görünümleri dikey olarak kalıyor ve bir kullanıcı bir videoyu tam ekran görüntülediğinde, sorun olmadan yatay olarak dönüyor.

Sorunum, dikey moddaki durum çubuğunun yöneltme maskesine uymaması ve yatay olarak dönmesidir, ancak durum çubuğu daha sonra manzarada gizlenmiştir. Diğer garip bir şey ise, uygulama manzaradayken, kontrol merkezi ve bildirim merkezi, uygulama manzaradaymış gibi açılabilir.

Desteklenen en az iOS 9'dur. Baska öneri?

cevap

3

Yukarıdaki kodu root görünümü denetleyicimde kaldırmayı ve bunu uygulama temsilcisine ekledim. Durum çubuğu şimdi kalıyor.

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask { 
    if let vc = window?.rootViewController?.presentedViewController { 
     if NSStringFromClass(vc.classForCoder) == "AVFullScreenViewController" { 
      return UIInterfaceOrientationMask.AllButUpsideDown 
     } 
    } 
    return UIInterfaceOrientationMask.Portrait 
} 
+1

Neden olduğundan emin değilim, ama benim durumumda işlev parametresi olan pencere penceresi geçersiz. Ben de 'UIApplication' penceresine 'self.window' ile erişiyorum. –