3

テスト目的で、次の 2 つのアプリを作成しました。

  • 最初のものは、を使用してMP3ファイルを再生しますUIDocumentInteractionController
  • 2 つ目は、ファイル タイプ " public.mp3 "を登録するだけです。

アプリをiPhoneシミュレーターに展開すると、MP3 プレーヤー アプリの上部に ['MP3Test' で開く] ボタンが表示されます。ただし、 iPadシミュレーターにデプロイすると、ボタンも [開く] メニューもありません。

これは iOS5 でテストされています。

これがバグなのか機能なのか、その背後にある理由を誰か説明できますか?

4

3 に答える 3

2

あなたがそれをどこから提示しているかに依存します。

画面の中央付近または下からプレゼンテーションを行う場合は、プレゼンテーション元のオブジェクトのフレームからプレゼンテーションを行ってください。

それがナビゲーションバーにある場合は、これを試してください:

NSString *fileToOpen = [[NSBundle mainBundle] pathForResource:@"License" ofType:@"pdf"];
UIDocumentInteractionController *controller = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:fileToOpen]];
controller.delegate = self;

CGRect navRect = self.navigationController.navigationBar.frame;
navRect.size = CGSizeMake(1500.0f, 40.0f);
[controller presentOptionsMenuFromRect:navRect inView:self.view animated:YES];
于 2012-02-13T23:28:26.147 に答える
0

iPad はポップオーバー ( UIPopoverを参照) との親和性があり、その中にUIActionSheetが表示される理由です。あなたが持っていた同様の問題に直面して、私は自分の UIDocumentInteractionController を、ビュー自体 (iPhone でうまく動作したもの) からではなく、UIBarButtonItem (結果として UIPopover プレゼンテーション) から提示しました。

  1. アクション ボタンへの参照を保存します (ナビゲーション バーに私のものがあります)。

  2. View リファレンスではなく、アクション ボタン リファレンスを使用して PresentOpenInMenu を使用すると、UIPopover プレゼンテーションが生成されます。

この変更は iPhone アプリには影響しないことに注意してください。以前と同じように動作します。つまり、View 参照を使用して表示した場合と同じように、画面の下部から OpenInMenu を開きます。

于 2013-01-12T00:06:54.597 に答える