UIDocumentInteractionController用于打开菜单 – 不起作用

我实现了一个UIDocumentInteractionController来发送文件到其他应用程序。 该文件是一个.txt文件。

代码如下:

UIDocumentInteractionController *interactionController = [[UIDocumentInteractionController alloc] init]; [interactionController setURL:[NSURL fileURLWithPath:filePath]]; [interactionController setUTI:@"public.text"]; [interactionController setDelegate:self]; [interactionController presentOpenInMenuFromBarButtonItem:actionBarButtonItem animated:YES]; 

菜单打开罚款,显示应用程序,如页面,Dropbox等,如我所料。 但是,当我点击其中一个时,“打开”菜单closures,不执行任何操作(文件不发送,目标应用程序也不会打开。

我试着实现委托方法documentInteractionController:canPerformAction:documentInteractionController:performAction:用于触发复制:和打印:调用使用选项菜单(而不是在菜单中打开),并拉出菜单只有页面列出,但仍然不工作。

这怎么解决?

我find了答案,这是内存pipe理。 我创buildUIDocumentInteractionController然后呈现它,但我没有它作为一个实例variables。 在ARC有机会做任何事情之前,ARC会释放它。 这包括将文档发送到外部应用程序。

这个错误并没有出现在iPhone上,但是在iPad上,它给出了一个错误,因为popover体系结构的工作方式有点不同,最终在解除分配时尝试绘制它。 这就是提醒我的错误。

这个错误也出现在iPhone / iPod上。 刚刚设置:

 @property (nonatomic, retain) UIDocumentInteractionController *docController; 

并将其保留并将文档传递给新的应用程序。

添加下面的代码就足够了:

 [interactionController retain];