Benutzerdefinierte navigationItem-Taste mit QLPreviewController in iOS6
mein Ziel ist es, mit QLPreviewController in meine iPad-App für iOS6, meine custom-Action-Element button in der oberen Symbolleiste.
Ich hatte die Lösung, bis iOS5.1. Habe ich eine Klasse, die Sie erweitert QLPreviewController und bei Komponenten-lifecycle-ich habe so etwas wie
[[self navigationItem] setRightBarButtonItems:[NSArray arrayWithObject:[self buildCustomButton]]];
Mit iOS6 dieser trick funktioniert nicht mehr, und jetzt scheint es unmöglich zu ändern navigationItem-Konfiguration. Ich denke, dass die Einführung der UIActivity und Sozialen Rahmenbedingungen beteiligt werden könnten, und vielleicht ist es nicht mehr effektiv arbeiten navigationItem, aber ich finde keine Lösung.
Jede Anregung?
Danke, bye
- Ähnliches problem: stackoverflow.com/questions/12568508/...
- Ich habe das gleiche problem. Versuchen zu lösen...
- Hab das gleiche problem. Kann nicht scheinen, um zu ersetzen oder entfernen Sie die standard-teilen-button mehr.
- Ja, ich verwendet, um dies tun zu können, weil ich wickelte die QLpreviewController in einen NavigationController, aber wenn ich nun das tun, wird das Dokument nicht angezeigt. Go figure =/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich wirklich brauchte eine Lösung, so dass ich dies.
Ja, es ist hässlich. Ja, es kann brechen und zu jeder Zeit. Und ja, ich gehe strait dev Hölle, aber mein Chef hat stoppen Sie starren mich mit zornigen Augen...für jetzt.
Steve Jobs jagen mich in meinen träumen, bis ich eine richtige Lösung...
Es funktioniert, wenn Sie ändern das action-Element button in der oberen Symbolleiste, die Sie würden tun müssen, es in
Nachdem die Ansicht erscheint
rightBarButtonItems
zugegriffen werden kann.Tja, ich habe eine gute und eine schlechte Nachricht.
Die gute Nachricht ist, ich habe herausgefunden, warum dies nicht funktioniert. In iOS6 die QLPreviewController ist navigationItem nicht mehr hat eine navigationBar:
In der Navigationsleiste befindet sich jetzt tief in die view-Hierarchie des QLPreviewControllersView:
QLPreviewViewController.view->UIView->UIView->QLRemotePreviewContentController->navBar->navItem->rightBarButtonItems.
Können Sie der unten Methode zu finden, die navigationItem, die Sie suchen:
Pass einfach auf [self view], um die Methode, und es wird Schleife, bis er eine findet die tab-bar in Frage. Sie können dann entfernen Sie oder fügen Sie Ihre eigenen.
Die schlechte Nachricht ist natürlich, dass Sie Zugriff auf private APIs und die Nutzung dieser wird wahrscheinlich erhalten Sie Ihre app abgelehnt, die vom app store. Es ist jedoch die einzige Antwort, die ich gesehen habe, auf diese. Würde gerne sehen, wenn es einen nicht-öffentlichen Weg, dies zu tun, aber angesichts der Art, wie es eingerichtet ist, scheint es unwahrscheinlich.
Zudem ist diese Methode funktioniert nur, wenn es aufgerufen wird, nachdem die bar ist bereits in position. Der beste Ort, um rufen Sie diese aus ist auch die "viewDidAppear", aber es funktioniert nicht 100% der Zeit.
Ist der beste Weg, um Ihre eigenen controller und view von QLPreviewController als Untersicht. In diesem Fall können Sie Ihre eigene Navigationsleiste mit benutzerdefinierten Elementen.
Ich habe versucht, für eine lange Zeit zu ersetzen Sie diese Taste. Sah zu, Untersichten, usw.. Sieht aus wie diese Aktionen/share-Taste wird so eine Schicht auf den nav. bar. Ich landete mit der Lösung dieses Problem für mich durch das hinzufügen einer weiteren Taste anstelle der Titel in QLPreviewController Unterklasse.