2

QLPreviewController を使用して PDF ファイルを表示して送信しようとしていますが、PDF ドキュメントをプレビューした後のアクション ボタンに問題があります。

アクション ボタン (右上) を押すと、アプリがクラッシュし、次のメッセージが表示されます。 MonoTouch.Foundation.MonoTouchException)」

私はいくつかの調査を行いましたが、インターネットからファイルをダウンロードした場合、またはファイルの種類が "file:// ........." でない場合に、この問題が発生する可能性があることがわかっています。私の NSUrl はその形式であるため、なぜこのエラーが発生するのかわかりません。

誰にもアイデアはありますか?

ありがとう

コントローラーを呼び出すコードは次のとおりです。

QLPreviewController previewController= new QLPreviewController();             

previewController.DataSource=new MyQLPreviewControllerDataSource();     

this.PresentViewController(previewController,true, null);

これは、DataSource の私のコードです。

public class MyQLPreviewControllerDataSource : QLPreviewControllerDataSource { public     override int PreviewItemCount (QLPreviewController controller) {

    return 1;
}

public override QLPreviewItem GetPreviewItem (QLPreviewController controller, int index)
{

    string fileName = @"example.pdf";
    var documents = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
    var library = Path.Combine (documents,fileName);
    NSUrl url = NSUrl.FromFilename (library);
    return new QlItem ("Title", url);
}
}

これはアイテムの私のコードです:

public class QlItem : QLPreviewItem { string _title; Uri _uri;

public QlItem (string title, Uri uri) 
{ 
    this._title = title; 
    this._uri = uri; 
} 

public override string ItemTitle { 
    get { return _title; } 
} 

public override NSUrl ItemUrl { 
    get { return _uri; } 
} 

}

4

1 に答える 1