Persistent rightBarButtonItem Eigentum von UINavigationItem
-
03-07-2019 - |
Frage
Dies kann eine dumme Frage, aber ist es möglich, eine richtige UIBarButtonItem
zu halten über mehrere Ansichten von einer UINavigationController
verwaltet? Ich habe eine Progression von Ansichten, die oft die gleiche Recht UIBarButtonItem
teilen, aber wenn ich eine neue Sicht auf meinen UINavigationController
schieben, ich habe die Taste jedes Mal neu zu definieren, auch wenn es sich nicht geändert hat. Meistens ist die spürbare Übergangs-Animation von einem Blick auf die nächste, was mich stört, weil die genaue kurz gleiche Taste dann in wieder ausgeblendet wird, was es nicht notwendig ist, da keine tatsächliche optische Veränderung ist. Sollte ich nur das Hinzufügen eines UIButton
als Subview meiner UINavigationBar
und erreichen auf diese Weise eine „richtige Bar-Taste“ -Effekt?
Lösung
Wir haben dies in unserer App. Wir haben eine einzige UIBarButtonItem, die wir von einem UIViewController auf einen anderen als den Benutzer navigiert tauschen. Der Trick war, verwenden UINavigationControllerDelegate, die Navigation: willShowViewController: animierte: Methode. Wir setzen den scheidenden UIViewController des rightBarButtonItem auf Null und die eingehenden Controllers rightBarButtonItem auf den Button aus. Es ist ein Schmerz zu verwalten, aber es funktioniert.
Andere Tipps
UIBarButtonItems kann als Standalone-Instanzen in einer nib / xib-Datei erstellt werden. Wenn es nichts Besonderes los, dass Sie verhindert, dass in der Lage, auf den Button im Interface Builder zu bauen, sollten Sie es auf die rightBarButtonItem Eigenschaft des UINavigationItem für jeden View-Controller zu verbinden, die den Knopf wieder zu verwenden muss. Kein Ziel c erforderlich.