Monotouch – problème avec QLPreviewController

J'essaie d'utiliser QLPreviewController pour voir un file PDF et l'envoyer, mais j'ai un problème avec le button d'action après la prévisualisation du document PDF.

Lorsque j'appuie sur le button d'action (en haut à droite), l'application se bloque et j'obtiens: "Exception gérée non gérée: exception Objective-C levée" Nom: NSInternalInconsistencyException Motif: UIDocumentInteractionController: schéma invalide (null) Seul le schéma de file est supporté. MonoTouch.Foundation.MonoTouchException) "

J'ai fait quelques searchs et il semble que ce problème peut se produire si vous téléchargez un file à partir d'Internet ou si le type de file n'est pas "file: // ……….". Mon NSUrl est sur ce format, donc je ne sais pas pourquoi j'ai cette erreur.

Quelqu'un a une idée?

Merci

Voici mon code pour appeler le controller:

QLPreviewController previewController= new QLPreviewController(); previewController.DataSource=new MyQLPreviewControllerDataSource(); this.PresentViewController(previewController,true, null); 

Ceci est mon code pour le DataSource:

 public class MyQLPreviewControllerDataSource : QLPreviewControllerDataSource { public override int PreviewItemCount (QLPreviewController controller) { return 1; } public override QLPreviewItem GetPreviewItem (QLPreviewController controller, int index) { ssortingng 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); } } 

Ceci est mon code pour l'article:

 public class QlItem : QLPreviewItem { ssortingng _title; Uri _uri; public QlItem (ssortingng title, Uri uri) { this._title = title; this._uri = uri; } public override ssortingng ItemTitle { get { return _title; } } public override NSUrl ItemUrl { get { return _uri; } } 

}

Votre class QlItem convertit l'original NSUrl en Uri avant de le renvoyer dans un NSUrl et quelque chose se perd en cours de route.

Cela devrait ressembler plus à:

  public class QlItem : QLPreviewItem { ssortingng title; NSUrl uri; public QlItem(ssortingng title, NSUrl uri) { this.title = title; this.uri = uri; } public override ssortingng ItemTitle { get { return title; } } public override NSUrl ItemUrl { get { return uri; } } }