UIKit NIB没有加载捆绑

时间:2013-05-29 03:46:48

标签: iphone objective-c nib quicklook

NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/quantum/Library/Application Support/iPhone Simulator/6.1/Applications/19503C82-22E2-4787-A4F5-8D83EDD5D58B/foo.app> (loaded)' with name '_UIDocumentActivityViewController''

我正在创建一个QLPreviewController,用它来显示PDF。然后点击分享按钮。它崩溃了。

我下载了Apple的Document Interaction示例项目。我将我的PDF获取课程放到那里,获取PDF,显示它......它的工作原理。分享按钮没有崩溃。两者都是针对目标6.1。我尝试将Apple的代码设置为目标iPad,就像我的项目一样。他们的代码有效,我的代码没有,我很困惑。从错误消息中,它听起来像SDK中的错误,但我无法确定它。

你以前见过这个吗?

    QLPreviewController *previewController = [[QLPreviewController alloc] init];

    [previewController setDataSource:self];

    [previewController setDelegate:self];

    [self presentViewController:previewController animated:YES completion:^{}];



#pragma mark QLPreviewControllerDataSource

- (NSInteger) numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller {

    return 1;
}

- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {
    return [NSURL fileURLWithPath:self.pdfPath];
}

我尝试删除对框架的引用,删除派生数据,清理项目,读取QuickLook框架。我在Apple的项目和放大器中都在Finder中展示过。我的&amp;他们有相同的道路。

当我使用UIDocumentInteractionController时会发生同样的事情。 我的项目中没有加载与电子邮件/打印等选项的小覆盖。

4 个答案:

答案 0 :(得分:1)

Apple的支持为我提供了答案。 我已经过了一个类别中的init方法,这搞砸了类初始化。 道德:不要在类别方法中覆盖init。

答案 1 :(得分:0)

尝试initwithnib

QLPreviewController *previewController = [[QLPreviewController alloc] initWithNib: (QLPreviewController) bundle : nil];

希望它有效。

答案 2 :(得分:0)

如果您已使用NavigationController,请使用:

QLPreviewController * previewController = [[QLPreviewController alloc] init];

[self.navigationController pushViewController:previewController animated:YES];

否则

QLPreviewController * previewController = [[QLPreviewController alloc] init];

[self presentModalViewController:previewController animated:YES];

答案 3 :(得分:0)

根据Apple's documentation QL生成器不应将NIB文件作为资源。

  

虽然快速查看生成器不会(也不应该)将nib文件作为资源,但您可以根据需要添加其他资源。