(以前の回答にはコードが含まれていなかったため、再度回答しました。お詫びします)
私の問題を解決する解決策については、ここで素晴らしい例を見つけました。
誰かに役立つ場合に備えて、ここにカットアンドペーストしました。Absoluteripple.comへの完全なクレジット
クラスの名前がViewControllerであるとすると、ViewController.hファイルでは次のようになります。
@interface ViewController: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 = [self setupControllerWithURL:fileURL
usingDelegate:self];
bool didShow = [docController presentOptionsMenuFromBarButtonItem:_btnActions
アニメーション:はい];
if(!didShow){
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@ ""
message:@"申し訳ありません。このデバイスに適切なアプリが見つかりません。"
デリゲート:nil
cancelButtonTitle:@ "OK"
otherButtonTitles:nil];
[アラートショー];
}
}
- ファイルを送信できるアプリを表示する場合に、上記を呼び出すメソッドを追加します。この例では、UIBarButtonが次のIBActionに接続されています。
-(IBAction)ActionButtonClicked:(id)sender {
[自己showOptionsMenu];}
それだ。ボタンをクリックすると、ファイルを送信できるアプリ(存在する場合)を示すアクションシート(すべてAppleのUIDocumentInteractionControllerクラスを使用)が表示されます。
オプションで、次のデリゲートメソッドを実装できます。
- (void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application
- (void)documentInteractionController:(UIDocumentInteractionController *)controller didEndSendingToApplication:(NSString *)application
- (void)documentInteractionControllerDidDismissOpenInMenu:(UIDocumentInteractionController *)controller