UIDocumentsInteractionController显示iBooks但不打开它

时间:2012-03-20 17:48:10

标签: iphone objective-c ios cocoa-touch uidocumentinteraction

我的UIDocumentsInteractionController正在提供一个带有“iBooks”按钮的动作表,但当我点击该按钮时,它只是解散而且它不会带我去iBooks。这是我的代码:

NSString *filenamePath =[NSString stringWithFormat:@"temp.%@", [[file path] pathExtension]];

    NSString *docDir = [DataCenter getDocumentsDirectoryPath];

    NSString *fullPath = [docDir stringByAppendingPathComponent:filenamePath];

    NSURL *url = [NSURL fileURLWithPath:fullPath];
    UIDocumentInteractionController *c = [UIDocumentInteractionController interactionControllerWithURL:url];

    BOOL success = [c presentOpenInMenuFromBarButtonItem:buttonBack animated:YES];

我做错了什么? 感谢

2 个答案:

答案 0 :(得分:18)

对于那些坚持这一点的人:你根本不需要将自己设置为UIDocumentInteractionController的委托。

问题是[UIDocumentInteractionController interactionControllerWithURL:url]正在自动释放。它认为它会被显示的动作表内部保留,但显然不是。 所以,是的,必须保留它,直到行动表解散。

答案 1 :(得分:0)

尝试检查UIDocumentInteractionControllerDelegate方法documentInteractionController:willBeginSendingToApplication:documentInteractionController:didEndSendingToApplication:。如果您的视图控制器是文档交互控制器的委托,那么应该可以解决问题所在的位置。

此外,您应该验证您尝试在其他地方使用的文件(我假设的PDF)实际上是您期望的文件。