Quicklook/QLPreviewController zeigt eine leere Seite, statt der pdf-Datei auf ios 8 funktioniert aber auf iOS7
Ich versuche, um eine Vorschau der pdf-Datei in QLPreviewController und mit dem code unten. Es funktioniert gut auf iOS7 und für die andere Art von Dateien (JPG/PNG) auf iOS8 als gut, aber wenn ich versuche zu öffnen pdf es zeigt leere Seite, anstatt Inhalte auf iOS8. Seine seltsam, dass es immer noch zeigt den Namen der pdf-Datei in der Titel-Ansicht.
Code:
QLPreviewController *previewer = [[QLPreviewController alloc] init];
previewer.dataSource = self;
previewer.currentPreviewItemIndex = 0;
[self presentViewController:previewer animated:NO completion:nil];
Und QLPreviewControllerDataSource Methoden:
- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller {
return 1;
}
- (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index {
return [NSURL fileURLWithPath:self.pdfUrl];
}
Bringen Sie die QLPreviewController in einem UINavigationController?
InformationsquelleAutor sanjana | 2014-08-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eigentlich ein bekanntes Problem in iOS 8 Beta 5.
Finden Sie unter der URL, unter QuickLook
https://developer.apple.com/library/prerelease/ios/releasenotes/General/RN-iOSSDK-8.0/
InformationsquelleAutor CodyJames.LeBlanc
Dort scheint ein Fehler zu sein, wenn er eine QLPreviewController innerhalb eines UINavigationController. Es zeigt nur, als ein schwarzer Sicht, auch wenn das Dokument geladen ist.
Die Lösung ist nicht Verwendung eines Navigations-controller. QLPreviewController überschreibt die Navigationsleiste sowieso.
Yup, das war mein problem. Als Schalt-Dinge über, ein
UIDocumentInteractionController
aber dieQLPreviewController
noch funktioniert, wenn aus einer nav-controllerInformationsquelleAutor CrimsonChris
Es gibt wohl zwei Dinge, die hier beteiligt sind.
Für diejenigen, die die Umsetzung QLPreviewController in einem UINavigationController, gibt es wahrscheinlich ein Problem gibt.
Für diejenigen, die noch mit dem Problem, ohne die UINavigationController, Lesen Sie weiter.
In iOS 8.0, Datei-Pfad zu den Daten geändert hat.
Also, wenn Sie älter bundle-Pfad für den Zugriff auf Ihre Ressourcen, die Sie vielleicht ein Problem haben.
Haben wir untersuchen dies und es stellt sich heraus:
Zum Beispiel, unser problem war, dass unsere PDF-Datei geöffnet wurde von einer externen Anwendung mit dem traditionellen "Open-In".
Dies führte zu der Datei, die kopiert wird, um den Posteingang-Ordner im Dokumente-Verzeichnis der App.
WIRD die Datei korrekt angezeigt, auf dem simulator, unabhängig von der QLPreviewController die Einbettung in einen UINavigationController oder nicht.
Die Datei WIRD NICHT richtig angezeigt auf einem echten iOS-Gerät.
Vor dem senden der Datei URL der QLPReviewController, das haben wir kopieren die Datei in das Stammverzeichnis das Verzeichnis Dokumente, das bestehen dieses neue URL der QLPreviewController.
Und dann bingo, es hat funktioniert.
So, um zu verhindern dieses Problem, stellen Sie sicher, dass Sie kopieren Sie die resource in einem Verzeichnis, das Sie tatsächlich besitzen.
Bis jemand erklären kann, wie zu spielen, um mit die Rechte auf den Posteingang (wahrscheinlich gemeinsamen) Verzeichnis.
Haben Sie versuchen, hinzufügen die QLPreviewController als root-Ansicht eines UINavigationController-und dann präsentiert Sie Modal?
NÖ, wir fügen es zu anzeigen, die Hinzugefügt, um einen UInavigationController
Dann haben Sie möglicherweise eine andere Lösung gefunden. Das hinzufügen von es als root-view-controller eines UINavigationController geben Sie einen schwarzen Bildschirm.
Yup, same here-ich kann entweder die nav-controller oder die
presentViewController
Ansatz, solange ich pre-kopieren Sie die Datei aus dem Posteingang-Ordner in den übergeordneten Ordner "Dokumente"; mit Posteingang bekomme ich nur eine Anzeige der PDF-Datei name und Größe.InformationsquelleAutor Chevenement David
Verwenden Sie diesen code, wenn in einer verzweifelten Notwendigkeit zu verwenden QLPreviewController eingebettet in UINavigationController:
InformationsquelleAutor bteapot
Ich erst vor kurzem begegnet eine leere Seite wieder und ich habe den Grund gefunden zu sein, Tat ich etwas, was wie
Da die
QLPreviewController
hält seine dataSource als schwach, variable, Datenquelle sofort verschwindet.Halten eine starke Referenz auf die dataSource geholfen.
InformationsquelleAutor DrMickeyLauer
Funktioniert bei mir einwandfrei auf iOS8.1
Stellen Sie sicher, laden Sie die doc-Datei in eine richtige Datei-Pfad
ist und laden Sie es in Ihre QLPreviewControl
Und stellen Sie sicher, dass Sie öffnen Sie die QLPreviewControl mit presentViewController nicht schieben Sie es in Ihre navigation controller
InformationsquelleAutor Ahmed Nasser
Für iOS 9.2:
In Monotouch.ios,
verwenden
statt
Wird es Arbeit für alle Dateien. (jpg,png,pdf,etc.)
InformationsquelleAutor satish
Ich hatte das gleiche problem, und ich brauchte, um Anruf
reloadData()
nachdem ich diedataSource
auf einen neuen Wert.InformationsquelleAutor Jason
Ich ein problem hatte (und noch habe) mit Darstellung von Dokumenten aus bundle (xCode 9.2, iOS-11). Es zeigt nur Bilder. Für andere Dokumente (pdf, key, rtf, pages, docx, txt ...) es zeigt nur den Namen und nicht den Inhalt. Ich präsentiere controller-Modal und die datasource implementiert, wie dieses:
Natürlich, es zeigt, dass die Datei KANN als Vorschau angezeigt werden, aber es funktioniert nicht für die Vorschau. Derzeit bin ich der Lösung dieses durch kopieren einer Datei zum Verzeichnis Dokumente und übergabe der url-Datenquelle.
InformationsquelleAutor Jovan Stankovic