目标C:在iBooks上打开PDF文件

时间:2013-05-14 07:35:49

标签: ios objective-c uipopovercontroller ibooks uidocumentinteraction

我正在从在线服务器下载PDF文件并将其保存到我的应用程序沙盒中,然后在iBooks中查看。

iBooks观看是我现在正在努力的方向。 我试过这段代码:

    UIDocumentInteractionController *docController = [UIDocumentInteractionController interactionControllerWithURL:url];

    docController.delegate = self;

    [docController presentOpenInMenuFromRect:savePDF.frame inView:self.view animated:YES];
    [docController dismissMenuAnimated:YES];

仍然没有机会,它正在运行,但是在它出现之后马上就被解雇了。但是当我删除[docController dismissMenuAnimated:YES];时,它会给我一个错误'-[UIPopoverController dealloc] reached while popover is still visible.'

可能是什么问题?

2 个答案:

答案 0 :(得分:0)

问题是,由于变量UIDocumentInteractionController不在范围内,您的docController会在呈现后立即被释放。

为了防止这种情况,您应该创建strong属性或实例变量,并将UIDocumentInteractionController存储在那里。这样,UIDocumentInteractionController将一直存在,直到您释放控制它的对象,这应该足够长,以便用户进行选择......

答案 1 :(得分:0)

我一次又一次地尝试了所有内容但终于得到了 [UIPopoverController dealloc],而popover仍然可见错误消失了,所有这些都是通过这样做:

  

转到您的项目构建阶段 - >然后编译源 - >选择   您遇到问题的.m并双击   编译器标记并添加 -fobjc-arc 然后清理并构建您的应用程序。

同样,这对每个人都不适用,可能不是正确的答案,但它也可能有助于其他一些人遇到同样的问题。