2016-03-14 3 views
1

Мое приложение поддерживает только портретный режим, но для видео, которое я воспроизвожу из UIWebView в полноэкранном режиме, также должно поддерживать ландшафтный режим. Я много искал и нашел некоторый ответ, добавив уведомление, что я не должен делать потому что там много уведомления для других вещей, и второго, что я нашел работу этого код:Ландшафтный режим только для видео

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask { 

    var classesToCheckFor = [AnyClass]() 

    if let ios7Class = NSClassFromString("MPInlineVideoFullscreenViewController") { 
     classesToCheckFor.append(ios7Class) 
    } 

    if let ios8Class = NSClassFromString("AVFullScreenViewController") { 
     classesToCheckFor.append(ios8Class) 
    } 

    for classToCheckFor in classesToCheckFor { 
     if (self.window?.rootViewController?.presentedViewController?.isKindOfClass(classToCheckFor) != nil) { 
      return .AllButUpsideDown 
     } 
    } 

    return .Portrait 
} 

Он работает отлично в прошивке 9, но не в IOS 8.Anyone знает, как это сделать для прошивки 8.

ИЛИ есть ли другой способ, которым я могу это сделать?

ответ

0

Я получил решение просто удалить ключевое слово self и он работал отлично в обоих СВН 8 и КСН 9.Change код

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask { 

    var classesToCheckFor = [AnyClass]() 

    if let ios7Class = NSClassFromString("MPInlineVideoFullscreenViewController") { 
     classesToCheckFor.append(ios7Class) 
    } 

    if let ios8Class = NSClassFromString("AVFullScreenViewController") { 
     classesToCheckFor.append(ios8Class) 
    } 

    for classToCheckFor in classesToCheckFor { 
     if (window?.rootViewController?.presentedViewController?.isKindOfClass(classToCheckFor) != nil) { 
      return .AllButUpsideDown 
     } 
    } 

    return .Portrait 
} 
Смежные вопросы