UIDocumentInteractionController presentOpenInMenuFromBarButtonItem在iOS8.1上停止运行良好

ori*_*888 6 cocoa-touch ios8

我的应用程序有一个文档交互控制器,用于打开其他应用程序中的文档.以下代码显示一个按钮,用于打开"打开方式"菜单,允许用户在其他应用程序中打开文件 - 例如,如果用户在"打开方式"菜单中选择了邮件应用程序,则通过邮件发送,邮件应用程序创建一封新电子邮件,并自动将该文件附加到邮件正文.

以下代码在iOS7中运行良好,但在iOS8 +上停止运行良好.文件未附加到邮件,我收到错误日志消息.

UIDocumentInteractionController声明:

@property (nonatomic, strong) UIDocumentInteractionController* interactionController;
Run Code Online (Sandbox Code Playgroud)

初始化:

self.interactionController = [UIDocumentInteractionController interactionControllerWithURL:self.url];
self.interactionController.delegate = self;
self.interactionController.name = self.file.name;
Run Code Online (Sandbox Code Playgroud)

要求"打开"菜单:

[self.interactionController presentOpenInMenuFromBarButtonItem:self.openInBarButtonItem animated:YES];
Run Code Online (Sandbox Code Playgroud)

打开excel文件后收到的错误消息示例:

提供的未知活动项目:({"com.microsoft.excel.xls"= <504b0304 .... 000000>;},"")

viewServiceDidTerminateWithError:Error Domain = _UIViewServiceInterfaceErrorDomain Code = 3"无法完成操作.(_UIViewServiceInterfaceErrorDomain error 3.)"UserInfo = 0x ... {Message = Service Connection Interrupted}(lldb).

我很感激任何想法来解决这个问题.

谢谢,Ori

012*_*346 0

这是我的代码

        BOOL IOS8=SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0");
        if (IOS8){
        if ([interactionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES]) {
            NSLog(@"menu is presented");
        }
Run Code Online (Sandbox Code Playgroud)