带有NSURL的UIActivityViewController到音频文件只显示空投

时间:2014-02-19 12:31:25

标签: ios ios7 uiactivityviewcontroller

我正在尝试使用UIActivityViewController来共享音频文件(.aac)。这是我写入沙盒文档目录的临时文件。

我在NSURL方法中传递initWithActivityItem:

[audioData writeToFile:[urlToAudioFile path] options:NSDataWritingFileProtectionNone error:&error];

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[urlToAudioFile] applicationActivities:nil];
    [self.view.window.rootViewController presentViewController:activity animated:YES completion:^{
...
}];

当我按下分享按钮时,需要几秒钟,弹出活动表,唯一的选项是Airdrop。

如何显示电子邮件或iMessage等其他选项? 是否有回调方法,以便我可以确定“共享”何时完成,以便我可以再次删除临时文件?

有没有办法让我添加音频文件而不必先将其写入磁盘?我不能以某种方式传递NSData对象吗?

1 个答案:

答案 0 :(得分:4)

如果您尝试共享实际文件,则需要使用UIDocumentInteractionController,它旨在共享整个文件。 UIActivityViewController用于文本,也可能是图像。

如果您需要向自己的文件发送消息而不是仅打开其他应用,请考虑为UIActivity制作自定义UIDocumentInteractionController,为邮件制作另一个自定义mfmailcomposeviewcontroller。请参阅MFMessageComposeViewController和{{1}}

参见(Apple Developer):https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html