8

仅限 iPad:UIDocumentInteractionController presentPreviewAnimated 不会被推入导航堆栈,即使从 documentInteractionControllerViewControllerForPreview 返回导航控制器,也只会以模态方式显示

大家好

我想知道是否有人可以在这里帮助我,我相信这可能是一个仅与 iPad 相关的错误(它适用于 iPhone),但在我提交之前需要确认。

为了让 UIDocumentInteractionController 在导航控制器中工作,我遵循了推荐的方法,通过返回导航控制器表单 documentInteractionControllerViewControllerForPreview 但它不起作用。

我什至通过将其升级到 iPad 来尝试 Apple 提供的 UIDocumentInteractionController 代码示例,果然,即使我从 documentInteractionControllerViewControllerForPreview 返回导航控制器,文档交互控制器也会模态显示。但是对于 iPhone,它确实会被推送到导航堆栈中。

我试图设计一个基于 splitviewcontroller 的应用程序,它使用 doc 交互控制器读取 PDF 文件,这样 PDF 将显示在 DetailViewController 中,但这仅适用于 QLPreviewController(而不是 Doc 交互控制器)。

有没有人有这个问题?我把我的示例代码和我看到的图像放在下面:

我正在使用 iOS 6.0 SDK。

static NSString* documents2[] =
{
    @"PDF Document.pdf"
};

@implementation WhizTBViewController

@synthesize documentURLs, docInteractionController;

#pragma mark -
#pragma mark View Controller

- (void)setupDocumentControllerWithURL:(NSURL *)url
{
    if (self.docInteractionController == nil)
    {
        self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:url];
        self.docInteractionController.delegate = self;
    }
    else
    {
        self.docInteractionController.URL = url;
    }
}


- (void)previewDocument {
    // three ways to present a preview:
    // 1. Don't implement this method and simply attach the canned gestureRecognizers to the cell
    //
    // 2. Don't use canned gesture recognizers and simply use UIDocumentInteractionController's
    //    presentPreviewAnimated: to get a preview for the document associated with this cell
    //
    // 3. Use the QLPreviewController to give the user preview access to the document associated
    //    with this cell and all the other documents as well.
    // for case 2 use this, allowing UIDocumentInteractionController to handle the preview:

    NSURL *fileURL;

    fileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:documents[0] ofType:nil]];
    [self setupDocumentControllerWithURL:fileURL];
    [self.docInteractionController presentPreviewAnimated:YES];
}

#pragma mark -
#pragma mark UIDocumentInteractionControllerDelegate

- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)interactionController
{
    return [self  navigationController];
}

这是我在 iPad 上看到的

这是我在 iPad 上看到的 我需要像这样显示它(iPhone上的示例代码相同)

我需要像这样显示它(iPhone上的示例代码相同):

4

1 回答 1

2

我向 Apple 提交了错误报告。我的报告 ( http://www.openradar.me/radar?id=2785401 ) 作为 Bug ID# 12567789 的副本被关闭。所以显然这是一个已知问题。

于 2013-03-08T16:32:37.137 回答