1

私がUIDocumentInteractionControllerで抱えている非常にイライラする問題を誰かが助けてくれることを願っています。

ユーザーが別のアプリでファイルを開くことができるようにするには、'presentOpenInMenuFromRect' メソッドを呼び出す必要があります。この段階では、単に概念実証を行っているだけなので、テスト目的で非常に基本的なファイル タイプを使用しているだけです。

以下のコードを使用して UiDocumentInteractionController を設定し、presentPreviewAnimated メソッドを正常に呼び出すことができるため、ファイルパス URL が正しいことを確認しました。ドキュメントは実際にプレビュー モードで正常に開きます。

私が抱えている問題は、使用するファイルの種類に関係なく、'presentOpenInMenuFromRect' が常に NO を返すことです。これまでのところ、jpg、png、pdf、txt、rtf、および html の一般的なファイル タイプを使用してきましたが、すべて役に立ちませんでした。

誰かがこの問題に遭遇した場合、アドバイスをいただければ幸いです。確かに、これらのファイルの少なくとも 1 つが関連付けられたアプリを持っているとしてデバイスによって認識されるはずです (そして、プレビューが問題ないという事実は、実際にはこれを証明するものではありませんか?) もっと根本的に間違ったことをしているのだろうか? 私はiPhoneでデバッグしているので、これはシミュレーターの癖ではありません。

どんなアドバイスでも大歓迎です!前もって感謝します。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSURL *filePath = [NSURL fileURLWithPath:[documentsDirectory stringByAppendingPathComponent:@"test.txt"]];

documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:filePath];
documentInteractionController.delegate = self;
[documentInteractionController retain];

// The following line does work, so we know the UIDocumentInteractionController and filepath are fundamentally correct
// [documentInteractionController presentPreviewAnimated:YES];

// Method ALWAYS returns NO, no matter what file type is used
if (![documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES])
    NSLog(@"Failed to show Open In menu");
4

1 に答える 1

2

同じ問題を抱えている他の人のためにこれに関する更新を投稿すると思ったのですが...「開く」メニューが表示されない理由は、ファイル拡張子を持つアプリがインストールされていないという単純な事実によるものだと今では信じています使っていました。

これは今ではかなり明白に思えますが、当時、より一般的なファイルタイプのいくつかはシステムアプリなどに関連付けられていると想定していましたが、Adobe Reader をインストールすると、これが pdf で動作するようになりました.

于 2013-01-29T11:07:39.850 に答える