(再次回答,因为我之前的回答不包括代码。抱歉)
对于解决我的问题的解决方案,我在这里找到了一个很好的示例。
我已将其剪切并粘贴在这里,以防它对某人有所帮助。完全归功于absoluteripple.com
假设你的类叫做 ViewController,那么在 ViewController.h 文件中:
@interface 视图控制器:UIViewController
{
UIDocumentInteractionController *docController;
}
在 ViewController.m 中添加以下方法: //- 设置 UIDocumentInteraction 控制器并将其委托设置为 self 以便我们可以处理回调事件
- (UIDocumentInteractionController *) setupControllerWithURL:(NSURL *)fileURL
usingDelegate:(id <UIDocumentInteractionControllerDelegate>) interactionDelegate {
UIDocumentInteractionController *interactionController =
[UIDocumentInteractionController interactionControllerWithURL:fileURL];
interactionController.delegate = interactionDelegate;
return interactionController;
}
//- 这里的关键实例方法是presentOptionsMenuFromBarBUttonItem //- 这里假设有一个名为_btnActions的BarButtonItem
- (void)showOptionsMenu
{
NSURL *fileURL = [NSURL fileURLWithPath:@"THE_FILE_URL_PATH"];
docController = [自我 setupControllerWithURL:fileURL
usingDelegate:self];
bool didShow = [docController presentOptionsMenuFromBarButtonItem:_btnActions
动画:是];
如果(!didShow){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
消息:@“对不起。在此设备上找不到合适的应用程序。”
代表:无
取消按钮标题:@“确定”
其他按钮标题:无];
[警报显示];
}
}
- 当您想显示可以将文件发送到的应用程序时,添加一个调用上述方法的方法 在此示例中,UIBarButton 连接到以下 IBAction:
- (IBAction)ActionButtonClicked:(id)sender {
[自我显示选项菜单];}
这就对了。单击按钮时,将出现一个操作表(全部由 Apple 的 UIDocumentInteractionController 类提供支持),其中显示您可以将文件发送到的应用程序(如果有的话)。
您可以选择实现以下委托方法:
- (void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application
- (void)documentInteractionController:(UIDocumentInteractionController *)controller didEndSendingToApplication:(NSString *)application
- (void)documentInteractionControllerDidDismissOpenInMenu:(UIDocumentInteractionController *)controller