4

UIDocumentInteractionController、iPad シミュレーター (iOS バージョン 3.2 を使用する XCode 3.2.3 に同梱されている「iPhone シミュレーター」バージョン 4.0) では機能しないようです。

を使用して PDF プレビューを表示する簡単なサンプル コードがあります UIDocumentInteractionController。デバイス上で動作します。iPad ではpresentPreviewNO を返すだけで、UIDocumentInteractionController'sデリゲート メソッドは呼び出されません。

それを機能させるためのヒントはありますか?

4

2 に答える 2

3

ここで同じ動作を確認します。呼び出しはシミュレーターで- (BOOL)presentPreviewAnimated:返されますが、デバイスでは機能します。NOこれを指摘してくれてありがとう、私は自分のコードを何度も何度も調べて 2 時間を費やしました。これまでのところ解決策はありません。

于 2010-09-08T18:31:58.473 に答える
0

これは以前は既知のバグでしたが、実際には iOS 4.2 よりも新しいバージョンの iOS でこの問題が発生しました。

問題はUIDocumentInteractionController、 がデバイス上で正常に動作することですが、シミュレーターではクラッシュします。私が発見したのは、メモリの管理を少し変えると問題が解決したことです。違いはautoreleasingDidEndPreviewデリゲート メソッドにあります。ここに私のコードのコアがあります:

-(void)createPDF
{
    UIDocumentInteractionController *dc;
    //....other code to generate pdf document
    dc = [[UIDocumentInteractionController interactionControllerWithURL:loadURL] retain];
    dc.delegate = self;

    [dc retain];

    [dc presentPreviewAnimated:YES];
}

//Delegate Methods
- (void)documentInteractionControllerDidEndPreview:(UIDocumentInteractionController *)controller
{
    [controller autorelease];
}

以前は、通常のモーダル ビューのようにドキュメント コントローラーを作成し、表示後にリリースするだけでした。

注 : autorelease は重要です。通常の release 呼び出しだけでクラッシュします。

于 2012-11-20T00:30:01.960 に答える