Ich habe einen Stapel von drei VCs, die über einen Navigationscontroller koordiniert werden und eine Navigationsleiste verwenden. In dieser Navigationsleiste habe ich in jeder VC dieselbe Schaltfläche (eine Schaltfläche "Abmelden") als Element der rechten Leiste hinzugefügt:
%Vor%So hat jeder View-Controller diese Abmelde-Schaltfläche in der Navigationsleiste. Wenn ich einen dieser Controller auf den Navigationsstapel drücke, werden die neuen View Controller wie erwartet geladen, alles wird angezeigt und funktioniert ordnungsgemäß, aber direkt nachdem der neue View Controller angezeigt wird (nachdem die Animation beendet ist), verschiebt sich der Logout Button um 3px zum Recht.
Ich habe versucht, die Schaltfläche vor dem Drücken der VC, in den Init-Methoden der VC, in der ViewDidLoad und ViewDidAppear, aber immer noch das gleiche Verhalten. Ich kann diese Verschiebung nicht loswerden.
Was merkwürdig ist, ist, dass die Zurück-Schaltfläche verschwindet und wieder erscheint, wenn man die neue VC drückt (mit der Standard-Animation), aber die Schaltfläche "Abmelden" scheint an Ort und Stelle zu bleiben und sich nach der Animation nach rechts zu verschieben. Außerdem ist die Schriftart auf den Schaltflächen nicht die Standardschriftart, sondern eine der Systemschriften (Helvetica light), die damit verwandt sein kann.
Irgendwelche Ideen, warum das passiert?
Ich hatte das gleiche Problem. Dies liegt daran, dass Ihr rootviewcontroller nicht gesetzt ist. Legen Sie die Hauptseite oder die erste Seite fest, auf der Ihre erste Navigationsleiste als rootviewcontroller erstellt werden soll. Von dort [self.navcontroller] pushviewcontroller ...].
Versuchen Sie,
anzurufen %Vor%Auch was ist dein Logout-Button, ist das die richtige Klasse? Vielleicht ein bisschen mehr Code?
Tags und Links ios uinavigationcontroller uinavigationbar uinavigationitem