iPad solo: UIDocumentInteractionController presentPreviewAnimated non è spinto nella pila di navigazione e solo mostrato modale anche quando un controller di navigazione viene restituito dal documentInteractionControllerViewControllerForPreviewbug Probabile su iPad per UIDocumentInteractionController: presentPreviewAnimated non è spinto nella pila di navigazione
Hi Tutto
Mi chiedo se qualcuno potrebbe aiutarmi qui e credo che questo potrebbe essere un bug relativo solo all'iPad (funziona su iPhone) ma volevo una conferma prima di archiviarlo.
Per ottenere UIDocumentInteractionController che funziona in un controller di navigazione, ho seguito l'approccio consigliato restituendo un modulo del controller di navigazione documentInteractionControllerViewControllerForPreview ma non funziona.
Ho anche provato l'Apple ha fornito codice di esempio UIDocumentInteractionController con l'aggiornamento a iPad e abbastanza sicuro, il controller interazione documento viene visualizzato modale anche se torno un controller di navigazione da documentInteractionControllerViewControllerForPreview. Tuttavia, per l'iPhone, viene spinto nello stack di navigazione.
Sto cercando di progettare un'applicazione splitviewcontroller che legge i file PDF utilizzando il controller di interazione doc, in modo che il PDF venga visualizzato in DetailViewController, ma funziona solo per QLPreviewController (non il controller di interazione Doc).
Qualcuno ha problemi con questo? Ho inserito il mio codice di esempio qui sotto con un'immagine di quello che vedo:
Im utilizzando 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];
}
Questo è quello che vedo sul iPad
ho bisogno di mostrare che in questo modo (lo stesso codice di esempio su iPhone)
Ho creato un semplice progetto di esempio che dimostra il problema: https://github.com/kristopherjohnson/DocumentPreviewTest –