单击 - QLPreviewController问题

问题描述:

我想使用QLPreviewController查看PDF文件并发送它,但预览PDF文档后,操作按钮出现问题。当我按动作按钮(在右上角)应用程序崩溃,我得到:“未处理的托管异常:抛出的目标C异常。名称:NSInternalInconsistencyException原因:UIDocumentInteractionController:无效的方案(null)。只有文件方案(MonoTouch.Foundation.MonoTouchException)“单击 - QLPreviewController问题

我做了一些研究,它认为如果您从互联网上下载文件或文件类型不是”file:// ...“,则可能发生此问题。 .......“。 我的NSUrl是这种格式,所以我不知道为什么我有这个错误。

有人有什么想法吗?

感谢

这里是我的代码来调用控制器:

QLPreviewController previewController= new QLPreviewController();    

previewController.DataSource=new MyQLPreviewControllerDataSource();  

this.PresentViewController(previewController,true, null); 

这是我的数据源代码:

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; } 
} 

}

你的QlItem类将原始的NSUrl转换成Uri,然后将它重新放回到NSUrl中,并且沿途有东西丢失。

它看起来更像是:

public class QlItem : QLPreviewItem 
    { 
     string title; 
     NSUrl uri; 

     public QlItem(string title, NSUrl uri) 
     { 
      this.title = title; 
      this.uri = uri; 
     } 

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

     public override NSUrl ItemUrl { 
      get { return uri; } 
     } 
    }     
+0

就是这之间的区别和我有什么? – 2013-07-19 17:08:40

+0

您的班级正在将网址保存为System.Uri,但它应该使用Monotouch NSUrl。 – 2013-07-19 20:57:00

+0

使用QLPreviewController浏览PDF的其他问题:查看器不喜欢..在路径中,但其他媒体预览查看器似乎不在乎。 – 2014-04-09 10:42:14