2012-10-24 22 views
8

iPad tylko: UIDocumentInteractionController presentPreviewAnimated nie zagłębia się w stos nawigacyjnym i tylko pokazano modally nawet gdy kontroler nawigacyjny jest zwracany z documentInteractionControllerViewControllerForPreviewPrawdopodobny błąd na iPada dla UIDocumentInteractionController: presentPreviewAnimated nie jest wciśnięty do stosu nawigacji

Hi wszystko

zastanawiam się, czy ktoś może mi pomóc tutaj i uważam, że to może być błąd związany z iPada tylko (to działa na iPhone), ale chcieli potwierdzenie zanim ten plik.

Aby sterownik UIDocumentInteractionController działał w kontrolerze nawigacyjnym, zastosowałem zalecane podejście, zwracając formularz kontrolera nawigacji documentInteractionControllerViewControllerForPreview, ale nie działa.

Próbowałem nawet próbki kodu UIDocumentInteractionController firmy Apple, uaktualniając go do iPada i na pewno wystarczy, że kontroler interakcji z dokumentem jest wyświetlany modalnie, nawet jeśli zwrócę kontroler nawigacyjny z pliku documentInteractionControllerViewControllerForPreview. Jednak w przypadku iPhone'a jest on przesyłany do stosu nawigacji.

Próbuję zaprojektować aplikację opartą na splitviewcontroller, która odczytuje pliki PDF za pomocą kontrolera interakcji doc, w taki sposób, że plik PDF będzie wyświetlany w DetailViewController, ale działa to tylko dla QLPreviewController (a nie kontrolera interakcji Doc).

Czy ktoś ma problemy z tym? Poniżej zamieszczam przykładowy kod z obrazem tego, co widzę:

Używam SDK systemu iOS 6.0.

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

To co widzę na iPada

This is what I see on the iPad muszę pokazać go tak (samo przykładowy kod na iPhone)

I need to show it up like this (same sample code on the iPhone):

+0

Stworzyłem prosty przykładowy projekt, który pokazuje problem: https://github.com/kristopherjohnson/DocumentPreviewTest –

Odpowiedz