2011-11-12 8 views
22

他のアプリケーションにファイルを送信するためのUIDocumentInteractionControllerを実装しました。ファイルは.txtファイルです。Open InメニューのUIDocumentInteractionController - 動作しません。

は、ここでは、コードです:

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

メニューは、私が期待どおりなどのページ、Dropboxが、同様のアプリを示し、罰金が開きます。しかし、私がそれらのうちの1つをタップすると、Open Inメニューが消えて、何も実行されません(ファイルは送信されず、ターゲットアプリケーションは決して開きません)。

トリガーコピーのためにデリゲートメソッドdocumentInteractionController:canPerformAction:documentInteractionController:performAction:を実装しようとしました。 :?(メニューのオープンではなく)、それは唯一のページが記載されていると、メニューをプルアップし、それはまだ動作しませんでしたオプションメニューを使用して呼び出し、これが解決される可能性がありますどのように

答えて

49

私が見つけました私はUIDocumentInteractionControllerを作成し、それを提示しますが、インスタンス変数として持っていません.ARCはhの前に割り当てを解除します何かをする機会として。これには、ドキュメントを外部アプリに送信することも含まれます。

このバグはiPhoneには表示されませんでしたが、iPad上ではPopoverアーキテクチャが少し違って動作し、割り当てが解除されたときに描画しようとするため、エラーが発生します。それがバグに私に警告したものです。

+0

ありがとうございます!私は長い間スタックを検索していました。 – huoxinbird

+1

これはARCプロジェクトの答えです。 UIDocumentInteractionControllerのプロパティを宣言する必要があります。 @property(非構造体、強力)UIDocumentInteractionController * docController; –

+0

thnx。数時間を費やしました。アークを忘れる。 thnxもう一度多くの。 –

-4

それは、次のコードを追加するだけで十分です:

[interactionController retain]; 
16

このバグはまた、iPhone/iPodで表示されます。設定すると、

@property (nonatomic, retain) UIDocumentInteractionController *docController; 

となり、ドキュメントは新しいアプリケーションに渡されます。

関連する問題