たくさんの調査と基本的なQuickLookビューアをゼロから再作成した後、それでもエラーがログに記録されていることがわかりましたが、実際には元のプロジェクトのものではないドキュメントが表示されていました。
次に、QLPreviewControllerをNavigationController内に配置してから表示しようとしましたが、同じ問題が発生しました。QLPreviewControllerをUINavigationControllerでラップしてから提示しました。これは、navigationItemにカスタムボタンを割り当てる方法のようだったためです。これはiOS5.1(上記のとおり)では正常に機能しましたが、明らかにiOS6.0はこれを好みません。
QLPreviewControllerをUINavigationControllerでラップした余分なコードを削除すると、ドキュメントを表示できるようになりました。
ラップされているコントローラーの例:
QLPreviewController* previewer = [[QLPreviewController alloc] init];
previewer.dataSource = self;
previewer.delegate = self;
[previewer setCurrentPreviewItemIndex:0];
UINavigationController* previewNavCtrl = [[UINavigationController alloc] init];
[previewNavCtrl pushViewController:previewer animated:NO];
[self presentModalViewController:previewNavCtrl animated:YES];
への変更:
QLPreviewController* previewer = [[QLPreviewController alloc] init];
previewer.dataSource = self;
previewer.delegate = self;
[previewer setCurrentPreviewItemIndex:0];
[self presentModalViewController:previewer animated:YES];
注:ここでも、プロキシエラーはログに表示されているようです。
また、UIBarButtonItemのカスタマイズは、NavigationController=/なしでは機能しないようです。
更新:fileURLWithpathを使用してpreviewItemAtIndexのfileURLを生成すると、元のエラーがなくなることがわかりました。ただし、ドキュメントが読み込まれない場合でも同じ問題が発生します。
新しいエラー(他の人にも見られたもの)は次のとおりです。
パスのファイル拡張子を発行できませんでした:/Users/me/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/339DDF48-AF93-41B5-B81E-A39440A131C6/Documents/temp/Welcome1.docx
最終更新:拡張機能の問題/エラーは、 mustがすでに処理[NSString stringByAddingPercentEscapesUsingEncoding]
する必要があるときに、スペースに%20を手動で追加しようとしたためです(などを使用) 。[NSURL fileURLWithPath]
それを削除すると、これは機能し、iOS6を使用しています。したがって、実際の問題はUINavigationControllerとは関係ありませんが、実際にはファイルのURLがpreviewItemAtIndexを介して渡されます。