iOS:如果与"消息"选项共享则崩溃

Cra*_*lot 6 ios mfmessagecomposeviewcontroller uiactivityviewcontroller swift

我们的应用仅支持纵向模式.介绍UIActivityViewController的工作原理.

但是,与"消息"选项共享会导致应用崩溃:

***由于未捕获的异常'UIApplicationInvalidInterfaceOrientation'而终止应用程序,原因:'支持的方向与应用程序没有共同的方向,[MFMessageComposeViewController shouldAutorotate]返回YES'

与另一个选项共享,例如Facebook Messenger,可以使用.

像这样的类似SO问题的解决方案不起作用,因为他们建议支持所有方向.我们只想支持肖像.

1)我们如何支持"消息"共享选项,同时仅支持纵向方向,即仅支持Info.plist中的纵向方向?

2)为什么我们能够在Info.plist中仅支持纵向的其他应用程序中支持"消息"共享选项,但不支持此选项?我们应该在哪里寻找调试目的?

    // Define share objects
    let objectsToShare = ["test message"] as [Any]

    // Configure UIActivityViewController
    let activityViewController = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
    activityViewController.excludedActivityTypes =
        [UIActivityType.addToReadingList,
         UIActivityType.assignToContact,
         UIActivityType.print,
         UIActivityType.copyToPasteboard]

    // Define completion handler
    activityViewController.completionWithItemsHandler = doneSharingHandler

    // Show UIActivityViewController
    present(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

Jon*_*ose 1

我尝试了一段时间重现这个错误,但无法让它崩溃。UIInterfaceOrientationPortrait最后,当我返回时,当我应该返回UIInterfaceOrientationMaskPortrait其中一个方向功能时,我能够得到这个确切的崩溃。检查你的视图控制器的实现supportedInterfaceOrientations和你的实现application:supportedInterfaceOrientationsForWindow: