gpt4 book ai didi

ios - Monotouch - QLPreviewController 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:11:11 25 4
gpt4 key购买 nike

我正在尝试使用 QLPreviewController 查看 PDF 文件并发送它,但在预览 PDF 文档后我的操作按钮出现问题。

当我按下操作按钮(在右上角)时,应用程序崩溃并得到:“未处理的托管异常:抛出 Objective-C 异常。名称:NSInternalInconsistencyException 原因:UIDocumentInteractionController:无效方案(空)。只有文件方案是支持。(MonoTouch.Foundation.MonoTouchException)”

我做了一些研究,发现如果您从 Internet 下载文件或文件类型不是“file://.........”,则可能会出现此问题。我的 NSUrl 是那种格式,所以我不知道为什么会出现此错误。

有人知道吗?

谢谢

这是我调用 Controller 的代码:

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

关于ios - Monotouch - QLPreviewController 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com