由于UIInterfaceOrientationMask而在“presentViewController”中找到nil

时间:2016-09-16 08:09:49

标签: ios swift appdelegate uiinterfaceorientation guard

通过解决我的应用程序中的最后一个大问题,我会导致另一个问题,也许是更大问题我的应用程序只是一个肖像,但我希望能够在横向上观看视频。为此,我将此方法添加到AppDelegate:

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

    guard let vc = (window?.rootViewController?.presentedViewController) else {
        return .Portrait
    }

    if (vc.isKindOfClass(NSClassFromString("AVFullScreenViewController")!)) {
        return .AllButUpsideDown
    }

    return .Portrait
}

完美地运作。但是现在,如果我发出提醒或点击某些共享按钮(打开configureMailComposeViewController() or UIActivityViewController()),我的应用就会崩溃。

fatal error: unexpectedly found nil while unwrapping an Optional value
2016-09-16 09:51:43.665772 App[1788:535789] fatal error: unexpectedly found nil while unwrapping an Optional value

我不明白这个问题,不应该保护我免受这个问题的影响并返回.Portrait? 如果我删除该方法或只是返回.Portrait一切都可以使用景观观看视频的ecxeption。

请不要建议将我的应用除了横向方向以外,并为每个控制器禁用它。我试过了,不是在我的情况下工作。

1 个答案:

答案 0 :(得分:0)

AVFullScreenViewController此视图控件中弹出或关闭时,为windowstatusbar设置界面方向为纵向。您可以在viewWillDisappear的{​​{1}}内进行管理。