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
muszę pokazać go tak (samo przykładowy kod na iPhone)
Stworzyłem prosty przykładowy projekt, który pokazuje problem: https://github.com/kristopherjohnson/DocumentPreviewTest –