私が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");